mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
(1)we now compile in all printks, which is good: we can print any message provided we can change the console log level at any time. (2) The console log level is compiled in and unchangeable, which is bad, as it defeats the purpose of (1). Add a BIOS_ALWAYS log level. Make console log level a variable. Make functions that set it and get it visible everywhere. Always print out the version message; this is really *not* noise! PCI: Simplify pci functions so that they can be used in stage1 or anywhere for that matter. Add a find function which is needed for many stage1 functions. Note that we copy but also clean up the libpayload stuff just a bit. Get rid of config space type 2. If there was ever a platform that used it, I don't know what it was, and the presence is a needless distraction. tested and working on DBE62 (which means the console and the pci functions work :-). There is a remaining problem with dumplxmsrs which nobody understands. It prints out garbage if we use the %s for the msr names. Formatting is an issue; if somebody wants to fix formatting they can assume I will ack it. Sorry, my emacs has gone just nuts. Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://coreboot.org/repository/coreboot-v3@729 f3766cd6-281f-0410-b1cd-43a5c92072e9
68 lines
2.4 KiB
C
68 lines
2.4 KiB
C
/*
|
|
* 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 2 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, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef CONSOLE_H
|
|
#define CONSOLE_H
|
|
|
|
#include <types.h>
|
|
#include <shared.h> /* We share symbols from stage 0 */
|
|
#include <post_code.h>
|
|
|
|
#define BIOS_ALWAYS 0 /* log no matter what; not necessarily an error */
|
|
#define BIOS_EMERG 0 /* system is unusable */
|
|
#define BIOS_ALERT 1 /* action must be taken immediately */
|
|
#define BIOS_CRIT 2 /* critical conditions */
|
|
#define BIOS_ERR 3 /* error conditions */
|
|
#define BIOS_WARNING 4 /* warning conditions */
|
|
#define BIOS_NOTICE 5 /* normal but significant condition */
|
|
#define BIOS_INFO 6 /* informational */
|
|
#define BIOS_DEBUG 7 /* debug-level messages */
|
|
#define BIOS_SPEW 8 /* Way too many details */
|
|
|
|
void console_init(void);
|
|
void console_tx_byte(unsigned char byte, void *arg);
|
|
void console_tx_flush(void);
|
|
unsigned char console_rx_byte(void);
|
|
int console_tst_byte(void);
|
|
void die(const char *msg);
|
|
#ifdef CONFIG_CONSOLE_BUFFER
|
|
void printk_buffer_init(void);
|
|
void printk_buffer_move(void *newaddr, int newsize);
|
|
#endif
|
|
|
|
struct console_driver {
|
|
void (*init)(void);
|
|
void (*tx_byte)(unsigned char byte, void *arg);
|
|
void (*tx_flush)(void);
|
|
unsigned char (*rx_byte)(void);
|
|
int (*tst_byte)(void);
|
|
};
|
|
|
|
#ifdef CONFIG_CONSOLE_BUFFER
|
|
struct printk_buffer {
|
|
int len;
|
|
int readoffset;
|
|
int writeoffset;
|
|
char buffer[];
|
|
};
|
|
#endif
|
|
|
|
SHARED_WITH_ATTRIBUTES(printk, int, __attribute__((format (printf, 2, 3))),
|
|
int msg_level, const char *fmt, ...);
|
|
SHARED(banner, void, int msg_level, const char *msg);
|
|
SHARED(dump_mem_range, void, int msg_level, unsigned char *buf, int size);
|
|
|
|
#endif /* CONSOLE_H */
|