/* * Copyright 2013 - 2015 Freescale Semiconductor, Inc. * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef _FSL_ERRATA_H #define _FSL_ERRATA_H #include #if defined(CONFIG_PPC) #include #elif defined(CONFIG_LS102XA) #include #elif defined(CONFIG_FSL_LAYERSCAPE) #include #endif #ifdef CONFIG_SYS_FSL_ERRATUM_A006379 static inline bool has_erratum_a006379(void) { u32 svr = get_svr(); if (((SVR_SOC_VER(svr) == SVR_T4240) && SVR_MAJ(svr) <= 1) || ((SVR_SOC_VER(svr) == SVR_T4160) && SVR_MAJ(svr) <= 1) || ((SVR_SOC_VER(svr) == SVR_T4080) && SVR_MAJ(svr) <= 1) || ((SVR_SOC_VER(svr) == SVR_B4860) && SVR_MAJ(svr) <= 2) || ((SVR_SOC_VER(svr) == SVR_B4420) && SVR_MAJ(svr) <= 2) || ((SVR_SOC_VER(svr) == SVR_T2080) && SVR_MAJ(svr) <= 1) || ((SVR_SOC_VER(svr) == SVR_T2081) && SVR_MAJ(svr) <= 1)) return true; return false; } #endif #ifdef CONFIG_SYS_FSL_ERRATUM_A007186 static inline bool has_erratum_a007186(void) { u32 svr = get_svr(); u32 soc = SVR_SOC_VER(svr); switch (soc) { case SVR_T4240: return IS_SVR_REV(svr, 2, 0); case SVR_T4160: return IS_SVR_REV(svr, 2, 0); case SVR_B4860: return IS_SVR_REV(svr, 2, 0); case SVR_B4420: return IS_SVR_REV(svr, 2, 0); case SVR_T2081: case SVR_T2080: return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1); } return false; } #endif #ifdef CONFIG_SYS_FSL_ERRATUM_A008378 static inline bool has_erratum_a008378(void) { u32 svr = get_svr(); u32 soc = SVR_SOC_VER(svr); switch (soc) { #ifdef CONFIG_LS102XA case SOC_VER_LS1020: case SOC_VER_LS1021: case SOC_VER_LS1022: case SOC_VER_SLS1020: return IS_SVR_REV(svr, 1, 0); #endif #ifdef CONFIG_PPC case SVR_T1023: case SVR_T1024: return IS_SVR_REV(svr, 1, 0); case SVR_T1020: case SVR_T1022: case SVR_T1040: case SVR_T1042: return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 1, 1); #endif default: return false; } } #endif #endif /* _FSL_ERRATA_H */ 3'>refslogtreecommitdiffstats
blob: b65056de0fa81ec6f754dcd930646f731ebbc70a (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#
#   shell/builtin-command.rb - 
#   	$Release Version: 0.7 $
#   	$Revision$
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#   
#

require "shell/filter"

class Shell
  class BuiltInCommand<Filter
    def wait?
      false
    end
    def active?
      true
    end
  end

  class Void < BuiltInCommand
    def initialize(sh, *opts)
      super sh
    end
    
    def each(rs = nil)
      # do nothing
    end
  end

  class Echo < BuiltInCommand
    def initialize(sh, *strings)
      super sh
      @strings = strings
    end
    
    def each(rs = nil)
      rs =  @shell.record_separator unless rs
      for str  in @strings
	yield str + rs
      end
    end
  end

  class Cat < BuiltInCommand
    def initialize(sh, *filenames)
      super sh
      @cat_files = filenames
    end

    def each(rs = nil)
      if @cat_files.empty?
	super
      else
	for src in @cat_files
	  @shell.foreach(src, rs){|l| yield l}
	end
      end
    end
  end

  class Glob < BuiltInCommand
    def initialize(sh, pattern)
      super sh

      @pattern = pattern
    end

    def each(rs = nil)
      if @pattern[0] == ?/ 
	@files = Dir[@pattern]
      else
	prefix = @shell.pwd+"/"
	@files = Dir[prefix+@pattern].collect{|p| p.sub(prefix, "")}
      end
      rs =  @shell.record_separator unless rs
      for f in @files
	yield f+rs
      end
    end
  end

#   class Sort < Cat
#     def initialize(sh, *filenames)
#       super
#     end
#
#     def each(rs = nil)
#       ary = []
#       super{|l|	ary.push l}
#       for l in ary.sort!
# 	yield l
#       end
#     end
#   end

  class AppendIO < BuiltInCommand
    def initialize(sh, io, filter)
      super sh
      @input = filter
      @io = io
    end

    def input=(filter)
      @input.input=filter
      for l in @input
	@io << l
      end
    end

  end

  class AppendFile < AppendIO
    def initialize(sh, to_filename, filter)
      @file_name = to_filename
      io = sh.open(to_filename, "a")
      super(sh, io, filter)
    end

    def input=(filter)
      begin
	super
      ensure
	@io.close
      end
    end
  end

  class Tee < BuiltInCommand
    def initialize(sh, filename)
      super sh
      @to_filename = filename
    end

    def each(rs = nil)
      to = @shell.open(@to_filename, "w")
      begin
	super{|l| to << l; yield l}
      ensure
	to.close
      end
    end
  end

  class Concat < BuiltInCommand
    def initialize(sh, *jobs)
      super(sh)
      @jobs = jobs
    end

    def each(rs = nil)
      while job = @jobs.shift
	job.each{|l| yield l}
      end
    end
  end
end