[OpenBIOS] [commit] r844 - in trunk/openbios-devel: arch/sparc32 drivers include/drivers
repository service
svn at openbios.org
Sun Aug 8 22:03:38 CEST 2010
Author: blueswirl
Date: Sun Aug 8 22:03:38 2010
New Revision: 844
URL: http://tracker.coreboot.org/trac/openbios/changeset/844
Log:
sparc32: move stdio setup to openbios.c
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
Modified:
trunk/openbios-devel/arch/sparc32/boot.h
trunk/openbios-devel/arch/sparc32/openbios.c
trunk/openbios-devel/drivers/obio.c
trunk/openbios-devel/include/drivers/drivers.h
Modified: trunk/openbios-devel/arch/sparc32/boot.h
==============================================================================
--- trunk/openbios-devel/arch/sparc32/boot.h Sun Aug 8 21:54:06 2010 (r843)
+++ trunk/openbios-devel/arch/sparc32/boot.h Sun Aug 8 22:03:38 2010 (r844)
@@ -31,6 +31,8 @@
// romvec.c
extern struct linux_arguments_v0 obp_arg;
extern const void *romvec;
+extern const char *obp_stdin_path, *obp_stdout_path;
+extern char obp_stdin, obp_stdout;
// openbios.c
extern int qemu_machine_type;
Modified: trunk/openbios-devel/arch/sparc32/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/openbios.c Sun Aug 8 21:54:06 2010 (r843)
+++ trunk/openbios-devel/arch/sparc32/openbios.c Sun Aug 8 22:03:38 2010 (r844)
@@ -140,6 +140,65 @@
fword("property");
}
+static void setup_stdio(void)
+{
+ char nographic;
+ const char *stdin, *stdout;
+ phandle_t chosen;
+
+ fw_cfg_read(FW_CFG_NOGRAPHIC, &nographic, 1);
+ if (nographic) {
+ obp_stdin = PROMDEV_TTYA;
+ obp_stdout = PROMDEV_TTYA;
+ stdin = "ttya";
+ stdout = "ttya";
+ } else {
+ obp_stdin = PROMDEV_KBD;
+ obp_stdout = PROMDEV_SCREEN;
+ stdin = "keyboard";
+ stdout = "screen";
+ }
+
+ push_str("/");
+ fword("find-device");
+
+ push_str(stdin);
+ fword("pathres-resolve-aliases");
+ fword("encode-string");
+ push_str("stdin-path");
+ fword("property");
+
+ push_str(stdout);
+ fword("pathres-resolve-aliases");
+ fword("encode-string");
+ push_str("stdout-path");
+ fword("property");
+
+ chosen = find_dev("/chosen");
+ push_str(stdin);
+ fword("open-dev");
+ set_int_property(chosen, "stdin", POP());
+
+ chosen = find_dev("/chosen");
+ push_str(stdout);
+ fword("open-dev");
+ set_int_property(chosen, "stdout", POP());
+
+ push_str(stdin);
+ push_str("input-device");
+ fword("$setenv");
+
+ push_str(stdout);
+ push_str("output-device");
+ fword("$setenv");
+
+ push_str(stdin);
+ fword("input");
+
+ obp_stdin_path = stdin;
+ obp_stdout_path = stdout;
+}
+
static void init_memory(void)
{
memory = malloc(MEMORY_SIZE);
@@ -180,6 +239,7 @@
#endif
device_end();
+ setup_stdio();
/* Initialiase openprom romvec */
romvec = init_openprom();
Modified: trunk/openbios-devel/drivers/obio.c
==============================================================================
--- trunk/openbios-devel/drivers/obio.c Sun Aug 8 21:54:06 2010 (r843)
+++ trunk/openbios-devel/drivers/obio.c Sun Aug 8 22:03:38 2010 (r844)
@@ -638,15 +638,12 @@
static void
ob_nvram_init(uint64_t base, uint64_t offset)
{
- const char *stdin, *stdout;
unsigned int i;
- char nographic;
uint16_t machine_id;
const struct cpudef *cpu;
const struct machdef *mach;
char buf[256];
uint32_t temp;
- phandle_t chosen;
ob_new_obio_device("eeprom", NULL);
@@ -679,7 +676,6 @@
for(;;);
}
- fw_cfg_read(FW_CFG_NOGRAPHIC, &nographic, 1);
graphic_depth = fw_cfg_read_i16(FW_CFG_SUN4M_DEPTH);
// Add /idprom
@@ -829,57 +825,6 @@
fword("finish-device");
}
-
- if (nographic) {
- obp_stdin = PROMDEV_TTYA;
- obp_stdout = PROMDEV_TTYA;
- stdin = "ttya";
- stdout = "ttya";
- } else {
- obp_stdin = PROMDEV_KBD;
- obp_stdout = PROMDEV_SCREEN;
- stdin = "keyboard";
- stdout = "screen";
- }
-
- push_str("/");
- fword("find-device");
-
- push_str(stdin);
- fword("pathres-resolve-aliases");
- fword("encode-string");
- push_str("stdin-path");
- fword("property");
-
- push_str(stdout);
- fword("pathres-resolve-aliases");
- fword("encode-string");
- push_str("stdout-path");
- fword("property");
-
- chosen = find_dev("/chosen");
- push_str(stdin);
- fword("open-dev");
- set_int_property(chosen, "stdin", POP());
-
- chosen = find_dev("/chosen");
- push_str(stdout);
- fword("open-dev");
- set_int_property(chosen, "stdout", POP());
-
- push_str(stdin);
- push_str("input-device");
- fword("$setenv");
-
- push_str(stdout);
- push_str("output-device");
- fword("$setenv");
-
- push_str(stdin);
- fword("input");
-
- obp_stdin_path = stdin;
- obp_stdout_path = stdout;
}
static void
Modified: trunk/openbios-devel/include/drivers/drivers.h
==============================================================================
--- trunk/openbios-devel/include/drivers/drivers.h Sun Aug 8 21:54:06 2010 (r843)
+++ trunk/openbios-devel/include/drivers/drivers.h Sun Aug 8 22:03:38 2010 (r844)
@@ -84,10 +84,6 @@
unsigned long ob_reg(uint64_t base, uint64_t offset, unsigned long size, int map);
void ob_intr(int intr);
-/* arch/sparc32/romvec.c */
-extern const char *obp_stdin_path, *obp_stdout_path;
-extern char obp_stdin, obp_stdout;
-
/* arch/sparc32/boot.c */
extern uint32_t kernel_image;
extern uint32_t kernel_size;
More information about the OpenBIOS
mailing list