[RFC,2/4] scripts: add get_console_base.pl
diff mbox series

Message ID 20200130124233.4006-2-l.stelmach@samsung.com
State Not Applicable
Headers show
Series
  • boot/loader: Load kernel directly from firmware
Related show

Commit Message

Łukasz Stelmach Jan. 30, 2020, 12:42 p.m. UTC
Read UART base address from dtb for compile time configuration.

Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
---
 scripts/get_console_base.pl | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100755 scripts/get_console_base.pl

Patch
diff mbox series

diff --git scripts/get_console_base.pl scripts/get_console_base.pl
new file mode 100755
index 000000000000..c707ee37a19f
--- /dev/null
+++ scripts/get_console_base.pl
@@ -0,0 +1,26 @@ 
+#!/usr/bin/perl -w
+
+use strict;
+use File::Basename;
+use File::Spec::Functions;
+
+my $DTB=$ARGV[0];
+die "$0: DTB file not found: $DTB" unless (-f $DTB);
+
+my $scripts_dir=dirname($0);
+my $fdtget=catfile($scripts_dir, 'dtc', 'fdtget');
+
+my $stdout_path=`$fdtget  -ts "$DTB" /chosen stdout-path`;
+chomp $stdout_path;
+
+if ($stdout_path =~ m#([^/][^:]*)(?::.*)#) {
+	$stdout_path=`$fdtget -ts "$DTB" /aliases $1`;
+	chomp $stdout_path;
+}
+
+my $reg = `$fdtget -tx "$DTB" $stdout_path reg`;
+unless ($reg =~ m/^([[:xdigit:]]+)/) {
+	die "Base address not found";
+}
+$reg = $1;
+print "0x$reg\n";