[{"id":1761491,"web_url":"http://patchwork.ozlabs.org/comment/1761491/","msgid":"<873786j3or.fsf@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-09-01T07:09:08","subject":"Re: [Skiboot] [PATCH v2 5/5] hdata: Parse SPD data","submitter":{"id":48041,"url":"http://patchwork.ozlabs.org/api/people/48041/","name":"Stewart Smith","email":"stewart@linux.vnet.ibm.com"},"content":"Vasant Hegde <hegdevasant@linux.vnet.ibm.com> writes:\n> Parse SPD data and populate device tree.\n>\n> list of properites parsing from SPD:\n> -----------------------------------\n> [root@ltc-wspoon dimm@d00f]# lsprop .\n> memory-id        0000000c (12)   <-- DIMM type\n> device_type      \"memory-dimm-ddr4\"\n> serial           15d9ad22 (366587170)\n> part-number      \"36ASF2G72PZ-2G6B2   \"\n> manufacturer-id  0000802c (32812)   <-- Vendor ID, we can get vendor name from this ID\n>\n> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>\n> ---\n>  hdata/memory.c | 43 ++++++++++++++++++++++++++++++++++++++++++-\n>  1 file changed, 42 insertions(+), 1 deletion(-)\n\nDoes this match well enough whats in doc/device-tree/vpd.rst ? There\nshould probably be a couple of updates there, as it'll mean it's no\nlonger FSP machine specific :)\n\n>\n> diff --git a/hdata/memory.c b/hdata/memory.c\n> index d1570eb..956e0d7 100644\n> --- a/hdata/memory.c\n> +++ b/hdata/memory.c\n> @@ -319,16 +319,49 @@ static void vpd_add_ram_area(const struct HDIF_common_hdr *msarea)\n>  \t}\n>  }\n>\n> +static void vpd_parse_spd(struct dt_node *dimm, const char *spd, u32 size)\n> +{\n> +\tu16 *vendor;\n> +\tu32 *sn;\n> +\n> +\t/* SPD is too small */\n> +\tif (size < 512) {\n> +\t\tprlog(PR_WARNING, \"MSVPD: Invalid SPD size. \"\n> +\t\t      \"Expected 512 byts, got %d\\n\", size);\n> +\t\treturn;\n> +\t}\n> +\n> +\t/* Supports DDR4 format pasing only */\n> +\tif (spd[0x2] < 0xc) {\n> +\t\tprlog(PR_WARNING,\n> +\t\t      \"MSVPD: SPD format (%x) not supported\\n\", spd[0x2]);\n> +\t\treturn;\n> +\t}\n\nFor both of these we should probably have FWTS annotations explaining\nwhat's wrong.\n\n> +\n> +\tdt_add_property_string(dimm, \"device_type\", \"memory-dimm-ddr4\");\n> +\n> +\tdt_add_property_cells(dimm, \"memory-id\", be16_to_cpu(spd[0x2]));\n> +\n> +\tsn = (u32 *)&spd[0x145];\n> +\tdt_add_property_cells(dimm, \"serial\", be32_to_cpu(*sn));\n> +\n> +\tdt_add_property_nstr(dimm, \"part-number\", &spd[0x149], 20);\n> +\n> +\tvendor = (u16 *)&spd[0x140];\n> +\tdt_add_property_cells(dimm, \"manufacturer-id\", be16_to_cpu(*vendor));\n> +}\n\nDo we have a good way to link back DIMM to memory address?","headers":{"Return-Path":"<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","skiboot@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","skiboot@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xk9NJ29Bkz9s7C\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 17:09:36 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xk9NJ19WGzDqnm\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 17:09:36 +1000 (AEST)","from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n\t[148.163.156.1])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xk9Mz2NPczDqYs\n\tfor <skiboot@lists.ozlabs.org>; Fri,  1 Sep 2017 17:09:19 +1000 (AEST)","from pps.filterd (m0098394.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8178iJb074257\n\tfor <skiboot@lists.ozlabs.org>; Fri, 1 Sep 2017 03:09:17 -0400","from e13.ny.us.ibm.com (e13.ny.us.ibm.com [129.33.205.203])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cq2fca1q9-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <skiboot@lists.ozlabs.org>; Fri, 01 Sep 2017 03:09:16 -0400","from localhost\n\tby e13.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <skiboot@lists.ozlabs.org> from <stewart@linux.vnet.ibm.com>;\n\tFri, 1 Sep 2017 03:09:15 -0400","from b01cxnp22034.gho.pok.ibm.com (9.57.198.24)\n\tby e13.ny.us.ibm.com (146.89.104.200) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tFri, 1 Sep 2017 03:09:13 -0400","from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com\n\t[9.57.199.111])\n\tby b01cxnp22034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid v8179Do823265292; Fri, 1 Sep 2017 07:09:13 GMT","from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id AC8AAAC03A;\n\tFri,  1 Sep 2017 03:09:38 -0400 (EDT)","from birb.localdomain (unknown [9.81.216.230])\n\tby b01ledav006.gho.pok.ibm.com (Postfix) with SMTP id 74D0BAC040;\n\tFri,  1 Sep 2017 03:09:37 -0400 (EDT)","by birb.localdomain (Postfix, from userid 1000)\n\tid 116B14F0CA5; Fri,  1 Sep 2017 17:09:08 +1000 (AEST)"],"From":"Stewart Smith <stewart@linux.vnet.ibm.com>","To":"Vasant Hegde <hegdevasant@linux.vnet.ibm.com>, skiboot@lists.ozlabs.org","In-Reply-To":"<20170828071803.9406-5-hegdevasant@linux.vnet.ibm.com>","References":"<20170828071803.9406-1-hegdevasant@linux.vnet.ibm.com>\n\t<20170828071803.9406-5-hegdevasant@linux.vnet.ibm.com>","Date":"Fri, 01 Sep 2017 17:09:08 +1000","MIME-Version":"1.0","X-TM-AS-GCONF":"00","x-cbid":"17090107-0008-0000-0000-00000277CE7F","X-IBM-SpamModules-Scores":"","X-IBM-SpamModules-Versions":"BY=3.00007645; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00910572; UDB=6.00456794;\n\tIPR=6.00690853; \n\tBA=6.00005563; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016956;\n\tXFM=3.00000015; UTC=2017-09-01 07:09:14","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17090107-0009-0000-0000-0000368E8A38","Message-Id":"<873786j3or.fsf@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-01_02:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=1\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709010106","Subject":"Re: [Skiboot] [PATCH v2 5/5] hdata: Parse SPD data","X-BeenThere":"skiboot@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Mailing list for skiboot development <skiboot.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/skiboot/>","List-Post":"<mailto:skiboot@lists.ozlabs.org>","List-Help":"<mailto:skiboot-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org","Sender":"\"Skiboot\"\n\t<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"}},{"id":1786034,"web_url":"http://patchwork.ozlabs.org/comment/1786034/","msgid":"<8a466c05-17a9-248b-a305-8b1152b7b165@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-10-13T07:03:37","subject":"Re: [Skiboot] [PATCH v2 5/5] hdata: Parse SPD data","submitter":{"id":22361,"url":"http://patchwork.ozlabs.org/api/people/22361/","name":"Vasant Hegde","email":"hegdevasant@linux.vnet.ibm.com"},"content":"On 09/01/2017 12:39 PM, Stewart Smith wrote:\n> Vasant Hegde <hegdevasant@linux.vnet.ibm.com> writes:\n>> Parse SPD data and populate device tree.\n>>\n>> list of properites parsing from SPD:\n>> -----------------------------------\n>> [root@ltc-wspoon dimm@d00f]# lsprop .\n>> memory-id        0000000c (12)   <-- DIMM type\n>> device_type      \"memory-dimm-ddr4\"\n>> serial           15d9ad22 (366587170)\n>> part-number      \"36ASF2G72PZ-2G6B2   \"\n>> manufacturer-id  0000802c (32812)   <-- Vendor ID, we can get vendor name from this ID\n>>\n>> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>\n>> ---\n>>  hdata/memory.c | 43 ++++++++++++++++++++++++++++++++++++++++++-\n>>  1 file changed, 42 insertions(+), 1 deletion(-)\n>\n> Does this match well enough whats in doc/device-tree/vpd.rst ? There\n> should probably be a couple of updates there, as it'll mean it's no\n> longer FSP machine specific :)\n\nSure will update documentation.\n\n>\n>>\n>> diff --git a/hdata/memory.c b/hdata/memory.c\n>> index d1570eb..956e0d7 100644\n>> --- a/hdata/memory.c\n>> +++ b/hdata/memory.c\n>> @@ -319,16 +319,49 @@ static void vpd_add_ram_area(const struct HDIF_common_hdr *msarea)\n>>  \t}\n>>  }\n>>\n>> +static void vpd_parse_spd(struct dt_node *dimm, const char *spd, u32 size)\n>> +{\n>> +\tu16 *vendor;\n>> +\tu32 *sn;\n>> +\n>> +\t/* SPD is too small */\n>> +\tif (size < 512) {\n>> +\t\tprlog(PR_WARNING, \"MSVPD: Invalid SPD size. \"\n>> +\t\t      \"Expected 512 byts, got %d\\n\", size);\n>> +\t\treturn;\n>> +\t}\n>> +\n>> +\t/* Supports DDR4 format pasing only */\n>> +\tif (spd[0x2] < 0xc) {\n>> +\t\tprlog(PR_WARNING,\n>> +\t\t      \"MSVPD: SPD format (%x) not supported\\n\", spd[0x2]);\n>> +\t\treturn;\n>> +\t}\n>\n> For both of these we should probably have FWTS annotations explaining\n> what's wrong.\n\nActually we are parsing DDR4 dimms only. If we endup having different dimms then \nwe will throw warning unnecessarily.\n\n>\n>> +\n>> +\tdt_add_property_string(dimm, \"device_type\", \"memory-dimm-ddr4\");\n>> +\n>> +\tdt_add_property_cells(dimm, \"memory-id\", be16_to_cpu(spd[0x2]));\n>> +\n>> +\tsn = (u32 *)&spd[0x145];\n>> +\tdt_add_property_cells(dimm, \"serial\", be32_to_cpu(*sn));\n>> +\n>> +\tdt_add_property_nstr(dimm, \"part-number\", &spd[0x149], 20);\n>> +\n>> +\tvendor = (u16 *)&spd[0x140];\n>> +\tdt_add_property_cells(dimm, \"manufacturer-id\", be16_to_cpu(*vendor));\n>> +}\n>\n> Do we have a good way to link back DIMM to memory address?\n\nWe can map this to address range. But haven't found concrete way to map dimm to \nactual address. Let me see if I can get this info.\n\n-Vasant","headers":{"Return-Path":"<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","skiboot@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","skiboot@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yCzGN0YsMz9sNx\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 13 Oct 2017 18:03:56 +1100 (AEDT)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3yCzGM6hCczDrFL\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 13 Oct 2017 18:03:55 +1100 (AEDT)","from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n\t[148.163.156.1])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3yCzGD65khzDrCt\n\tfor <skiboot@lists.ozlabs.org>; Fri, 13 Oct 2017 18:03:48 +1100 (AEDT)","from pps.filterd (m0098399.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv9D72mwV050679\n\tfor <skiboot@lists.ozlabs.org>; Fri, 13 Oct 2017 03:03:46 -0400","from e06smtp14.uk.ibm.com (e06smtp14.uk.ibm.com [195.75.94.110])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2djq0adjyn-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <skiboot@lists.ozlabs.org>; Fri, 13 Oct 2017 03:03:46 -0400","from localhost\n\tby e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <skiboot@lists.ozlabs.org> from <hegdevasant@linux.vnet.ibm.com>; \n\tFri, 13 Oct 2017 08:03:44 +0100","from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196)\n\tby e06smtp14.uk.ibm.com (192.168.101.144) with IBM ESMTP SMTP\n\tGateway: Authorized Use Only! Violators will be prosecuted; \n\tFri, 13 Oct 2017 08:03:41 +0100","from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139])\n\tby b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v9D73dA817367176\n\tfor <skiboot@lists.ozlabs.org>; Fri, 13 Oct 2017 07:03:41 GMT","from d23av04.au.ibm.com (localhost [127.0.0.1])\n\tby d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id\n\tv9D73hw7007242\n\tfor <skiboot@lists.ozlabs.org>; Fri, 13 Oct 2017 18:03:43 +1100","from [9.199.177.209] ([9.199.177.209])\n\tby d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id\n\tv9D73fs1007177; Fri, 13 Oct 2017 18:03:42 +1100"],"Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.156.1; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=hegdevasant@linux.vnet.ibm.com; receiver=<UNKNOWN>)","To":"Stewart Smith <stewart@linux.vnet.ibm.com>, skiboot@lists.ozlabs.org","References":"<20170828071803.9406-1-hegdevasant@linux.vnet.ibm.com>\n\t<20170828071803.9406-5-hegdevasant@linux.vnet.ibm.com>\n\t<873786j3or.fsf@linux.vnet.ibm.com>","From":"Vasant Hegde <hegdevasant@linux.vnet.ibm.com>","Date":"Fri, 13 Oct 2017 12:33:37 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101\n\tThunderbird/45.4.0","MIME-Version":"1.0","In-Reply-To":"<873786j3or.fsf@linux.vnet.ibm.com>","X-TM-AS-MML":"disable","x-cbid":"17101307-0016-0000-0000-000004F565BF","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17101307-0017-0000-0000-0000283081DD","Message-Id":"<8a466c05-17a9-248b-a305-8b1152b7b165@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-10-13_03:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1710130098","Subject":"Re: [Skiboot] [PATCH v2 5/5] hdata: Parse SPD data","X-BeenThere":"skiboot@lists.ozlabs.org","X-Mailman-Version":"2.1.24","Precedence":"list","List-Id":"Mailing list for skiboot development <skiboot.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/skiboot/>","List-Post":"<mailto:skiboot@lists.ozlabs.org>","List-Help":"<mailto:skiboot-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org","Sender":"\"Skiboot\"\n\t<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"}}]