From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 83B0DECAAD1 for ; Thu, 1 Sep 2022 11:52:49 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0737D849F4; Thu, 1 Sep 2022 13:52:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="QkI/xubF"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 01E34849F1; Thu, 1 Sep 2022 13:52:45 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2052.outbound.protection.outlook.com [40.107.21.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2806E80430 for ; Thu, 1 Sep 2022 13:52:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nL2TT6FCl2rBsP8SaAsOmKKPv9JhaH+lZySbsMcRmaez8MrKZdoEu1oZkaYyy/OmH7y6pbSTOnfD+TBqnAAk7TlguzNurbs3zu2wDi45qHUR+hz/D/M3GxMWJArfYjXwFG6nLTYOh1uz7R7+nsT9QrNbjpFHJ/aYzzk9RraVQ/Mw9MowY7xAhgkr09xrVyED+giiSMhnfvftVKa8ED520Lc6IOoOAUgf2KX8L/aG0cg9hPvsxF7BsBxj0QxSKFFy/eLAn/RRxzsxMS8YtPyPUFfXkQRHpIRiX2B+tC828d/Mekripg0PeMajvrLEDerWLpDl9MD48inYW7enN7IMsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=HaYq5TP6cyXVQ++DuwdLtBE/SWX4Z3SVwE4mVFUDGdg=; b=Bx9cGW6cDOEksUVLDT6DbFeUWH92+NDg47BMiSu7/TgjdgleWGxza7JJe3jL4CtpKrLdVv3S8RG2ZKcTol7JQWmfPwJkr0Vjd49Ha0cAiqejzLK7xQIYq7flJuFJxxO1wyfNQ9VtF+tATSlk1uLEB8ScSnuXtdd1+QFEbroXNdAHKW2nw3V0yUL8uu3TT3ikOid5gt0FSXJ6kDE5GxNvFBmsUMwvv42I9ahr3G0GuYzXh9iJyFkjTbnRVLW96n/np4zHfr6INm7RiIlnlVSGrRkIG01gYz3H+Pjr2FX0JmNq1IusGxXO2HTh+wnvZWZas+ELnIHw+S/IKEjDTXf23g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HaYq5TP6cyXVQ++DuwdLtBE/SWX4Z3SVwE4mVFUDGdg=; b=QkI/xubFjAhNB9HDuiQHpb9t3ClH1K5RPm9iHS9GvPO3Yt3AWp4VjqZhHi3GBmyOBLGTV9s+B+nDyb4ingH1kv7+1MRte8p+uig6+IXiVcMJLiEFMVkS48FSW4igBk6hSHbB39oecjH/ShJv2nbWo/WFkqfysxi29bygBa4FleM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) by DBBPR08MB6300.eurprd08.prod.outlook.com (2603:10a6:10:209::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Thu, 1 Sep 2022 11:52:40 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44%3]) with mapi id 15.20.5566.021; Thu, 1 Sep 2022 11:52:40 +0000 Message-ID: <11acb481-bc4a-0d75-910b-e3e2f3228645@weidmueller.com> Date: Thu, 1 Sep 2022 13:52:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH 0/6] Enable CONFIG_TIMER for all Kirwood / MVEBU boards Content-Language: en-US To: Stefan Roese , Tony Dinh , Simon Glass Cc: U-Boot Mailing List , =?UTF-8?Q?Pali_Roh=c3=a1r?= , Michael Walle References: <20220830115317.410812-1-sr@denx.de> <282eefe1-58d4-89cd-f940-2428bdd42b59@denx.de> From: Stefan Herbrechtsmeier In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR3P281CA0031.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::9) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: be4b4634-5234-4d60-17a6-08da8c107908 X-MS-TrafficTypeDiagnostic: DBBPR08MB6300:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x7mjV5EuroOJwQeHayiJbnEcgziFHxmKgUV6gyqR6c/7SlOmjbL3CnSuIkjR8uh8LWtyZ8osGoxSo3aMsPB5smaMw2oSC1qDs234rVwowUX9o8lFlDBTbctLd71kch54xaaOE6HbJmccSZKTmO5iLaixC3tYQW5QV+V5LYZu+qL42i8ACjuHTjRVZUDzen7Fnr3cuhaoQc/Z2bHqDbOojaQ5rFz9G0THtInaDCsqNJv//rjgjFDj0SVAQElxDpJCauqCjlXkX78BjG3uOd5JvgRfF6C3mLoGH1kbblHT35mCkSAp+jacIn3efYRx71XeBTp9+WC3C5G8pAX7iMoMRdSC9f1HktZjflR7DZIFDJ7yVYDHJF16lfepHU3XOb6ceiTddx2g1oeB6XBXnAOUTaJZTLZcyil4izJiuzyjSZ1H9s4gGO4/U9Th3mda6WqOM3/zDoiDBjbsmhR+fHIdLCLHJ/cNefT0FM0M7+0d+mbeYN43xE7HWRfbCiZVtApQFTX/lSZ+EAkeXkG2KWmLbdd80p8d2nYpScyZoZ/qpDKRK+THayCWf3lyJNpQ42jXjoj/MIMx0qz/87bsazWWrWtETlX65ggKLc6Zi2GRuGkD6VGYctC6IOShpf23f2DkUiadLxQUP1hcNUNGLLPNz+GzmizkNa9E+ksY9Nk14VkDDQwIRkuoXlEMFkcu7FlqEkHCc3A3atwOtEAVDQe/ra2Vh4bA8JWm4GVJoLSU7eJzlFe82ho+5tHZ5iTexiDzCKhjYtp1/TI9qiJuZO94mwjY6xLXHLAuYaNjXnrzefbJjs21qqrZBvPm4Y8EVXpAZBT2ls/PdzDC8Q50X3m8Nw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6969.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(4326008)(31686004)(66946007)(8676002)(66556008)(36756003)(2906002)(66476007)(8936002)(110136005)(5660300002)(478600001)(41300700001)(54906003)(31696002)(86362001)(6486002)(316002)(186003)(38100700002)(2616005)(26005)(53546011)(6512007)(6506007)(52116002)(83380400001)(38350700002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MitNKzhFUlNScUhiWTNldWdEeFFNditsMUtMSUlIcWFKRDROVGRNM05DTjh1?= =?utf-8?B?MTAwOFpHak9QcU5TbEVuWFlOTkl0NTVtRGdPWEx6djVKcGhuVnNuSzFTYldp?= =?utf-8?B?Y0hDQTZ4YnZCZmV5MXh1OE5MMkY1SW5xQ0hTRnNZOWU0M3UxYm95VzUycHFS?= =?utf-8?B?L0RYUU5hVUU2Z1d0U2Q1alJ4dzlqdEdjZitaS2JyODR0NXpTVk1jWjVSb0V6?= =?utf-8?B?QWxVcCtvNlVhQjIyVi9VUUk5NG9WbnNSZVFkNVgwaXVnNGlCVlU1cUVKb25B?= =?utf-8?B?MUxrTXdyYW52V2xnTFJwU2xRMmQydS93MDM3RDVrQVIwVHUwS0VNdDMwR3JK?= =?utf-8?B?dFg2OHoyMGs1cW9OUXoySnZ4clE0T3FNK2RWYVJVd2ZlQ3luL0hoV1ptMkw4?= =?utf-8?B?UTRtU1ZNMHhKL2MvU2kzRWVsYmMrUm5YSncxUHJmTW1KenFvdnQzVC80eTJv?= =?utf-8?B?OHVTVldIcWZYY3dQYmxqT2VYVlNmcTNma1FxMWg3ckF2bDh2eTBLcncxMk1k?= =?utf-8?B?dExWY3g3VnVFMTF3WVlWc0N4ak56NDZGaXM2UXVjaUlHbW8zVkhBRXdIM1M1?= =?utf-8?B?RUh6cGhyYXgyRGlWa1B1bWlITjdyZFlxZUF4c1dKWGF3aS94RTZ2ZEFaVGtt?= =?utf-8?B?NjBPeHc5a1N2TER2QnQ4OXRiZkorZGRvc01EaHZlZTRFMUJ1ZVRyUzRTZXpZ?= =?utf-8?B?YlVOMGZHSHhKNXVucWFOcXd4dmpVei8vY0JBaDFNK1dWemljdUtEVzlCTHp0?= =?utf-8?B?bm96WGJlTEJ0NlZUWFRyaGVqTldhejRTbmFLcTV5bjBMYjh5ODIyazd3S08r?= =?utf-8?B?VGhIQ0pRRkpEZk9NTDRqdXVRUE4yUjlxUTJkVTNGcUg1UEVoeVJtcmdZSmww?= =?utf-8?B?SDRINENyUkJ1bDVZTi9UbnZKcHR4SEVKNEVNdlV2bC95aTJaOGJIeDloTzlO?= =?utf-8?B?cXJETkt3bEF1VWNkSnlyWDBzZXN2bTVQcDNvVmdENCtuYU5DSWFqbTRnbHUz?= =?utf-8?B?alB0ZGdpbE1WNzlPZVVDUDdCMVMwZldhRHU0b0hCVk5vLytFSXhoN3cyczVH?= =?utf-8?B?Qm1mUVlTaW5wRTZrcXpuNS9EY24wSlpWSDQvUXJaK1VadDU4QS81M2lvMVNQ?= =?utf-8?B?QUFUb3ZWZVlCeUVkN3dYbG9CdDdKeldOM3ZINmZWczg0NWZmMmF1NzNkMnlN?= =?utf-8?B?YWt1T2ZaWXF6ellMV3djSUxSb3lpUVNCamUwS0tOWWNZS3pEYUVOZXRoRUdF?= =?utf-8?B?dVB1Qjhtak9NcVplN1pIR085VGFjMkpCNml4N1F0S0Y3RG52TU05Qi9uNjgy?= =?utf-8?B?TnpZSGYwZlZDVW50UGxhYXZ2eUFRWXBFUk1SaHF0UkFic0tXQkRiVkdkWUtX?= =?utf-8?B?Z3lQYis5dzVXQmtuaElXdVc2TjZwMlg3MWhGS2RIclVFSjVMZGdVZG0wazN4?= =?utf-8?B?ZGhZU25qOWVGMUNMcTVVYVRiRUdnYnZyUXFIeUFJZkM1a25YYlM0eXg4RnQ5?= =?utf-8?B?a3pId2x4TkRTeEdvTlE0SVlaWUFWSUdFeGpHUFVDNjRiN2JReUY2ajdiOHRx?= =?utf-8?B?TGJTbUxnTTZncXA2M1BRUlUzK1Zmc1lCTDBlTzE0Z09nc1dFQllELzRUeHdB?= =?utf-8?B?SjZ4b2d4cXlnNjNKeUxNcDM4TEp2NHp0VGdZTnoyOVY4VDA2STAvMFF6anhW?= =?utf-8?B?SHk1R1ZieCtEb3JVczVsdlFaYk52WHZsUTlPa1hMMGExZ3RVa3hyeHFCSy92?= =?utf-8?B?dit6U1p2RlFodStXY2VxQmFlSWtPWWZwZmozdTl1NGlnb21sVW9NV1RVak5V?= =?utf-8?B?MHozS0Q0K3RNVVBwT0dFdEZJS3RhUU1VTmNEbDIzR3hoY0FEZm5aTFA5NG14?= =?utf-8?B?RUFtWE81N3VxemI4YXh4Rzh2T2pFc3F5a0RUV3lxOFFUOHdjUG43SjV3R3Nj?= =?utf-8?B?bFI5a0ppakcxV05TZTIzUDhtTklPYVMxWnIvWk9sd0Fzd0hzT1RUUXZvNWhX?= =?utf-8?B?SkwyU0N4Q3lwV0JncmMzTFVDVFBZeFM4bUtYbVNlNVk4dGRRUlVPRy9remtW?= =?utf-8?B?eHpJTXVNYlVJTHphMG1GZzdHVlhDMElUTHBrTmhldXV5b0JBNlNTS2ZyTGFl?= =?utf-8?B?cWRPVGZ6RTJvbWJNSk16b0N0clcrQkhtejZ6RklLZkxkaUF1NFNKeHVxV1lT?= =?utf-8?B?YWc9PQ==?= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: be4b4634-5234-4d60-17a6-08da8c107908 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2022 11:52:40.5535 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bYMr1ayrlf5bKJAFJqFJZEpQdjoMd/CtKK+nFqJGOP2SFOTK5kb+sOvP0aCqaLnw6hwhn/63kn9U7jivs0RxEA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6300 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Hi, Am 01.09.2022 um 11:27 schrieb Stefan Roese: > Hi Tony, > > On 01.09.22 09:39, Tony Dinh wrote: > > > >>>> Some ideas. >>>> >>>> The get_timer() function looks wrong assigning an uint64_t to ulong. >>>> >>>> lib/time.c >>>> >>>>       static uint64_t notrace tick_to_time(uint64_t tick) >>>>       uint64_t notrace get_ticks(void) >>>>       uint64_t __weak notrace get_ticks(void) >>>> >>>>       ulong __weak get_timer(ulong base) >>>>       { >>>>               return tick_to_time(get_ticks()) - base; >>>>       } >>>> >>>> Most of the timer infrastructure is using uint64_t. I'm seeing this >>>> __weak function get_timer was invoked in Kirkwood boards. Both in >>>> sleep and timer commands. >>> >>> The get_ticks() thing can run at 1MHz but the timer is 1KHz, so that >>> is why we don't need a u64 for the timer. >> >> Thanks for your explanation! However, would you agree that code is >> problematic and needed some improvement ? IOW, depending what the >> compiler does, it might return the 1st 32 bit of the 64-bit integer >> result? > > It will return the lower 32 bits if the system is 32bit, yes. > > To check if we have a problem here, please add this (totally untested) > code and extend it if it makes sense: > > diff --git a/lib/time.c b/lib/time.c > index bbf191f67323..ef5252419f3b 100644 > --- a/lib/time.c > +++ b/lib/time.c > @@ -146,7 +146,15 @@ int __weak timer_init(void) >  /* Returns time in milliseconds */ >  ulong __weak get_timer(ulong base) >  { > -       return tick_to_time(get_ticks()) - base; > +       u64 ticks = get_ticks(); > +       u64 time_ms = tick_to_time(ticks); > + > +       if (time_ms & 0xffffffff00000000ULL) > +               printf("ticks=%lld time_ms=%lld\n", ticks, time_ms); > +       if ((time_ms - base) & 0xffffffff80000000ULL) > +               printf("ticks=%lld time_ms=%lld base=%ld ret=%lld\n", > ticks, time_ms, base, time_ms - base); > + > +       return time_ms - base; >  } > > At least here, you seem to have a wrap around with the 32bits AFAICT: > >> GoFlexHome> sleep 20.5 >> do_sleep got a timer start = 15031 >> do_sleep delay = 20000 >> do_sleep delay = 20500 >> do_sleep sleeping... >> do_sleep start 15031 current 100 >> >> do_sleep start 15031 current 6400 >> do_sleep end of sleep ... current = 4294952265 >> >> *** Something strange happened here. current should be 6500, but it >> seems to have garbage. So the loop exits prematurely. > > 4294952265 = 0xFFFFC549! > Does the driver use a 32 bit counter without the timer_conv_64 function inside the get_count function? Regards Stefan