summaryrefslogtreecommitdiffstats
path: root/src/build/debug/Hostboot/Dump.pm
blob: 9eb4ee11f9d67c46156dd4dc01fadbcac6ec46ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/build/debug/Hostboot/Dump.pm $
#
# IBM CONFIDENTIAL
#
# COPYRIGHT International Business Machines Corp. 2011,2012
#
# p1
#
# Object Code Only (OCO) source materials
# Licensed Internal Code Source Materials
# IBM HostBoot Licensed Internal Code
#
# The source code for this program is not published or otherwise
# divested of its trade secrets, irrespective of what has been
# deposited with the U.S. Copyright Office.
#
# Origin: 30
#
# IBM_PROLOG_END_TAG

use strict;

package Hostboot::Dump;
use Exporter;
our @EXPORT_OK = ('main');

use constant    L3_SIZE =>  0x800000;

sub main
{
    my ($packName,$args) = @_;

    #Get current timestamp
    my $timeStamp = `date +%Y%m%d%H%M`;
    chomp $timeStamp;
    #::userDisplay "timestamp: $timeStamp\n";

    my  $hbDumpFile =   "hbdump.$timeStamp";

    ::userDisplay "Dumping L3 to Open output file $hbDumpFile..\n";
    open( OUTFH, ">$hbDumpFile" )   or die "can't open $hbDumpFile: $!\n";

    ## read in 8 MB!!
    my $data = ::readData( 0, L3_SIZE );
    write( OUTFH, $data );
    close( OUTFH )  or die "can't close $hbDumpFile: $!\n";


    #Check if hbDumpFile exists and is not empty
    if (-s "$hbDumpFile" )
    {
        ::userDisplay "\nHostBoot dump saved to $hbDumpFile.\n";
        ::userDisplay "Use hb-parsedump.pl program to parse the dump.\n";
    }
    else
    {
        ::userDisplay "\nWARNING: Cannot dump L3.  Did you stop instructions?\n\n";
        unlink $hbDumpFile;
    }
}

sub helpInfo
{
    my %info = (
        name => "Dump",
        intro => ["Dumps the entire L3 buffer to a file."],
    );
}
OpenPOWER on IntegriCloud