diff options
-rw-r--r-- | src/board.sh | 28 | ||||
-rw-r--r-- | src/board/local.mk | 2 | ||||
-rw-r--r-- | src/board/x200.sh | 56 | ||||
-rw-r--r-- | src/local.mk | 2 |
4 files changed, 88 insertions, 0 deletions
diff --git a/src/board.sh b/src/board.sh new file mode 100644 index 0000000..35d2bcf --- /dev/null +++ b/src/board.sh @@ -0,0 +1,28 @@ +# Board bindings +# +# Copyright (C) 2015 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +board_functions='get_name match validate_chip get_dists' + +select_board() +{ + local board="${1}" + local fn= + + for fn in ${board_functions}; do + eval "board_${fn}() { board_${board}_${fn} \"\${@}\"; }" + done +} diff --git a/src/board/local.mk b/src/board/local.mk new file mode 100644 index 0000000..db71a85 --- /dev/null +++ b/src/board/local.mk @@ -0,0 +1,2 @@ +firman_SOURCES += \ + src/board/x200.sh diff --git a/src/board/x200.sh b/src/board/x200.sh new file mode 100644 index 0000000..1c9b3a2 --- /dev/null +++ b/src/board/x200.sh @@ -0,0 +1,56 @@ +# Lenovo ThinkPad X200 board +# +# Copyright (C) 2015 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +board_x200_get_name() +{ + printf 'Lenovo ThinkPad X200' + return 0 +} + +board_x200_match() +{ + local vendor="${1}" + local part="${2}" + shift 2 + + if [ "x${vendor}" = 'xLENOVO' ] && [ "x${part}" = 'xThinkPad X200' ] + then + return 0 + else + return 1 + fi +} + +board_x200_validate_chip() +{ + local chip="${1}" + shift 1 + + case "${chip}" in + 'AT25DF321') return 0;; # AT26DF321-SU + 'MX25L3205D') return 0;; # MX25L3205DM2I-12G + 'MX25L6405D') return 0;; # MX25L6405DMI-12G + 'W25X64') return 0;; # W25X64VSFIG + *) return 1;; + esac +} + +board_x200_get_dists() +{ + printf 'libreboot libiquity' + return 0 +} diff --git a/src/local.mk b/src/local.mk index 4d0e58d..e1b21d3 100644 --- a/src/local.mk +++ b/src/local.mk @@ -1,5 +1,7 @@ firman_SOURCES += \ + src/board.sh \ src/main.sh \ src/ui.sh +include $(top_srcdir)/src/board/local.mk include $(top_srcdir)/src/ui/local.mk |