From: "Pankaj Bansal" <pankaj.bansal@nxp.com>
To: Leif Lindholm <leif@nuviainc.com>,
"Pankaj Bansal (OSS)" <pankaj.bansal@oss.nxp.com>
Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>,
Michael D Kinney <michael.d.kinney@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
Varun Sethi <V.Sethi@nxp.com>,
Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>,
Jon Nettleton <jon@solid-run.com>
Subject: Re: [PATCH v2 04/28] Silicon/Maxim: Fix bug in RtcWrite in Ds1307RtcLib
Date: Mon, 6 Apr 2020 06:18:56 +0000 [thread overview]
Message-ID: <VI1PR04MB5933CC7529FAEFD7EF7D426DF1C20@VI1PR04MB5933.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20200331123058.GF7468@vanye>
> -----Original Message-----
> From: Leif Lindholm <leif@nuviainc.com>
> Sent: Tuesday, March 31, 2020 6:01 PM
> To: Pankaj Bansal (OSS) <pankaj.bansal@oss.nxp.com>
> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; devel@edk2.groups.io; Varun Sethi
> <V.Sethi@nxp.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-
> Mahmoud@arm.com>; Jon Nettleton <jon@solid-run.com>
> Subject: Re: [PATCH v2 04/28] Silicon/Maxim: Fix bug in RtcWrite in
> Ds1307RtcLib
>
> On Fri, Mar 20, 2020 at 20:05:19 +0530, Pankaj Bansal wrote:
> > From: Pankaj Bansal <pankaj.bansal@nxp.com>
> >
> > There was a bug in I2C DXE implementation, which caused the Ds1307 RTC
> > device to issue two operation for register write, while this is a single
> > operation task. refer page 12 (Slave Receiver Mode (Write Mode)) on
> >
> > https://datasheets.maximintegrated.com/en/ds/DS1307.pdf
> >
> > Modify ds1307 RtcWrite code accordingly.
> >
> > Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
>
> So, I'm OK with this patch, but I'll mention that I prefer the design
> in Silicon/NXP/Library/Pcf8563RealTimeClockLib which I think could
> also be applied here. I think that might have avoided the confusion
> that caused the bug.
Actually this bug was introduced because the Pcf2129 RTC driver was written
Based on I2cDxe driver, which assumed that all I2c transaction would be (reg, data)
Pair, i.e. always two operations.
>
> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
>
> > ---
> > Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.c | 15 +++++++--------
> > 1 file changed, 7 insertions(+), 8 deletions(-)
> >
> > diff --git a/Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.c
> b/Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.c
> > index 88dc198ffec8..fd7a8696e405 100644
> > --- a/Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.c
> > +++ b/Silicon/Maxim/Library/Ds1307RtcLib/Ds1307RtcLib.c
> > @@ -5,7 +5,7 @@
> > EmbeddedPkg/Library/TemplateRealTimeClockLib/RealTimeClockLib.c
> >
> > Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
> > - Copyright 2017 NXP
> > + Copyright 2017, 2020 NXP
> >
> > SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> > @@ -84,16 +84,15 @@ RtcWrite (
> > {
> > RTC_I2C_REQUEST Req;
> > EFI_STATUS Status;
> > + UINT8 Buffer[2];
> >
> > - Req.OperationCount = 2;
> > + Req.OperationCount = 1;
> > + Buffer[0] = RtcRegAddr;
> > + Buffer[1] = Val;
> >
> > Req.SetAddressOp.Flags = 0;
> > - Req.SetAddressOp.LengthInBytes = sizeof (RtcRegAddr);
> > - Req.SetAddressOp.Buffer = &RtcRegAddr;
> > -
> > - Req.GetSetDateTimeOp.Flags = 0;
> > - Req.GetSetDateTimeOp.LengthInBytes = sizeof (Val);
> > - Req.GetSetDateTimeOp.Buffer = &Val;
> > + Req.SetAddressOp.LengthInBytes = sizeof (Buffer);
> > + Req.SetAddressOp.Buffer = Buffer;
> >
> > Status = mI2cMaster->StartRequest (mI2cMaster, FixedPcdGet8
> (PcdI2cSlaveAddress),
> > (VOID *)&Req,
> > --
> > 2.17.1
> >
next prev parent reply other threads:[~2020-04-06 6:19 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-20 14:35 [PATCH v2 00/28] Add PEI phase to LS1043ARDB Platform Pankaj Bansal
2020-03-20 14:35 ` [PATCH v2 01/28] Silicon/NXP: Add I2c lib Pankaj Bansal
2020-03-31 11:51 ` Leif Lindholm
2020-04-06 6:14 ` Pankaj Bansal
2020-04-06 11:12 ` Leif Lindholm
2020-04-09 7:39 ` [EXT] " Varun Sethi
2020-03-20 14:35 ` [PATCH v2 02/28] Silicon/NXP: changes to use I2clib in i2cdxe Pankaj Bansal
2020-03-20 14:35 ` [PATCH v2 03/28] Silicon/NXP/I2cDxe: Fix I2c Timeout with RTC Pankaj Bansal
2020-03-31 11:58 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 04/28] Silicon/Maxim: Fix bug in RtcWrite in Ds1307RtcLib Pankaj Bansal
2020-03-31 12:30 ` Leif Lindholm
2020-04-06 6:18 ` Pankaj Bansal [this message]
2020-03-20 14:35 ` [PATCH v2 05/28] Silicon/Maxim: Add comments " Pankaj Bansal
2020-03-31 12:31 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 06/28] NXP/LS1043aRdb: Move Soc specific components to soc files Pankaj Bansal
2020-04-01 9:42 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 07/28] Silicon/NXP: Implement SerialUartClockLib Pankaj Bansal
2020-04-01 9:53 ` Leif Lindholm
2020-04-06 6:33 ` Pankaj Bansal
2020-04-06 11:24 ` Leif Lindholm
2020-04-09 7:44 ` [EXT] " Varun Sethi
2020-04-09 10:46 ` Leif Lindholm
2020-04-13 3:00 ` Pankaj Bansal
2020-03-20 14:35 ` [PATCH v2 08/28] Silicon/NXP/LS1043A: Use BaseSerialPortLib16550 as SerialPortLib Pankaj Bansal
2020-04-01 9:54 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 09/28] Silicon/NXP: Drop DUartPortLib Pankaj Bansal
2020-04-01 9:55 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 10/28] Silicon/NXP: remove print information from Soc lib Pankaj Bansal
2020-04-01 9:59 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 11/28] Silicon/NXP: remove not needed components Pankaj Bansal
2020-04-01 10:07 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 12/28] Silicon/NXP: Remove unnecessary PCDs Pankaj Bansal
2020-04-01 10:08 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 13/28] Silicon/NXP: Move dsc file Pankaj Bansal
2020-04-01 10:10 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 14/28] Platform/NXP: rename the ArmPlatformLib as per ArmPlatformPkg Pankaj Bansal
2020-04-01 10:14 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 15/28] Silicon/NXP: Move RAM retrieval from SocLib Pankaj Bansal
2020-04-01 12:42 ` Leif Lindholm
2020-04-06 10:08 ` Pankaj Bansal
2020-04-06 11:48 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 16/28] Platform/NXP/LS1043aRdbPkg: Add Clock retrieval APIs Pankaj Bansal
2020-04-01 12:46 ` Leif Lindholm
2020-04-06 10:15 ` Pankaj Bansal
2020-03-20 14:35 ` [PATCH v2 17/28] Silicon/NXP: Use Clock retrieval PPI in modules Pankaj Bansal
2020-04-01 12:47 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 18/28] Silicon/NXP: Add Chassis2 Package Pankaj Bansal
2020-04-01 14:17 ` Leif Lindholm
2020-04-06 11:07 ` Pankaj Bansal
2020-04-06 11:51 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 19/28] Silicon/NXP/LS1043A: Use ChassisLib from Chassis2 Pkg Pankaj Bansal
2020-04-01 14:19 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 20/28] Silicon/NXP/LS1043A: Move SocLib to Soc Package Pankaj Bansal
2020-04-01 14:20 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 21/28] Slicon/NXP: Add PlatformPei Lib Pankaj Bansal
2020-04-01 14:53 ` Leif Lindholm
2020-04-06 14:53 ` Pankaj Bansal
2020-04-07 12:53 ` Leif Lindholm
2020-04-07 17:00 ` Pankaj Bansal
2020-04-08 13:04 ` [edk2-devel] " Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 22/28] NXP/LS1043aRdbPkg/ArmPlatformLib: Use default ArmPlatformHelper.S Pankaj Bansal
2020-04-01 14:58 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 23/28] NXP/LS1043aRdbPkg/ArmPlatformLib: Use Allocate pool Pankaj Bansal
2020-04-01 18:03 ` Leif Lindholm
2020-04-06 15:26 ` Pankaj Bansal
2020-04-07 13:08 ` Leif Lindholm
2020-04-13 6:11 ` Pankaj Bansal
2020-03-20 14:35 ` [PATCH v2 24/28] NXP/LS1043aRdbPkg/ArmPlatformLib: Remove extern SocInit Pankaj Bansal
2020-04-01 19:53 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 25/28] Platform/NXP: Modify FV rules Pankaj Bansal
2020-04-01 19:57 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 26/28] Platform/NXP/LS1043aRdbPkg: Add VarStore Pankaj Bansal
2020-04-01 19:59 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 27/28] Silicon/NXP: move MemoryInitPeiLib as per PEIM structures Pankaj Bansal
2020-04-01 20:00 ` Leif Lindholm
2020-03-20 14:35 ` [PATCH v2 28/28] Platform/NXP/LS1043aRdbPkg: Add PEI Phase Pankaj Bansal
2020-03-30 12:18 ` Leif Lindholm
2020-03-31 10:23 ` Pankaj Bansal
2020-03-31 10:50 ` Leif Lindholm
2020-03-26 12:36 ` [PATCH v2 00/28] Add PEI phase to LS1043ARDB Platform Samer El-Haj-Mahmoud
2020-04-01 20:52 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=VI1PR04MB5933CC7529FAEFD7EF7D426DF1C20@VI1PR04MB5933.eurprd04.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox