##
## This file is part of the coreboot project.
##
## Copyright (C) 2013 Bachmann electronic GmbH
##
## 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; version 2 of the License.
##
## 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.
##

entries

# -----------------------------------------------------------------
# RTC reserved
0          384       r       0        reserved_memory

384          1       e       4        boot_option
388          4       r       0        reboot_bits

# -----------------------------------------------------------------
# coreboot config options: console
392          3       e       1        baud_rate
395          4       e       2        debug_level

# -----------------------------------------------------------------
# coreboot config options: check sums
1008         16      h       0        check_sum

enumerations

#ID value   text
1     0     115200
1     1     57600
1     2     38400
1     3     19200
1     4     9600
1     5     4800
1     6     2400
1     7     1200
2     0     Emergency
2     1     Alert
2     2     Critical
2     3     Error
2     4     Warning
2     5     Notice
2     6     Info
2     7     Debug
2     8     Spew
4     0     Fallback
4     1     Normal
checksums

checksum 392 1007 1008
