[PATCH] I2C: i.MX: early: Use internal udelay

Sascha Hauer sha at pengutronix.de
Mon Jan 30 22:14:40 PST 2023


On Tue, Jan 31, 2023 at 05:42:29AM +1100, John Watts wrote:
> On Mon, Jan 30, 2023 at 05:36:58PM +0100, Sascha Hauer wrote:
> > You can't disable MMU during runtime, but you can compile without MMU
> > support, just disable CONFIG_MMU. However, the early I2C code already
> > runs with MMU disabled, can't you just put in some test code there?
> 
> This is going to sound really silly but I'm not sure how to time the code
> without a clock. I guess grabserial?

You could udelay(10000000) and measure the time with a stopwatch.
That should be accurate enough for this purpose already, in the end
the time will differ anyway between SoCs.

If you want to measure more exactly we have this little perl script
which prints a timestamp for each line printed.

Sascha

------------------------8<----------------------

#! /usr/bin/perl
#
# ptx_ts - Pengutronix' Add A Time Stamp Filter V1
# written by Wolfram Sang, Copyright 2009 Pengutronix
# free software - no warranty - WTFPL V2, see http://sam.zoy.org/wtfpl/

use warnings;
use strict;
use Time::HiRes qw(gettimeofday tv_interval);

my $arg = defined($ARGV[0]) ? $ARGV[0] : '(?=foo)bar'; # false-branch is a regexp that never matches
if ($arg eq '--help') {
        print "ptx_ts [regexp] - a filter which prepends a timestamp to every line of STDOUT; time will be reset if [regexp] matches\n";
        print "  Example: microcom <microcom_options> | ptx_ts 'U-Boot 2.0'\n";
        exit 0;
}

my $old;
my $base;
$| = 1; # Flush output immediately

sub reset_time {
        $old = 0;
        $base = [gettimeofday()];
}

reset_time;
while (<STDIN>) {
        reset_time if (/$arg/o);
        my $new = tv_interval($base);
        my $diff = $new - $old;
        printf("[%10.6f] <%10.6f> $_", $new, $diff);
        $old = $new;
}


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list