-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[POWERPC] Split low-level OF-related bootloader code into separate files
Currently, all OF-related code in the bootloader is contained in of.c. of.c also provides the platform specific things necessary to boot on an OF platform. However, there are platforms (such as PReP) which can include an OF implementation, but are not bootable as pure OF systems. For use by such platforms, this patch splits out the low-level parts of the OF code (call_prom() and various wrappers thereof) into a new oflib.c file. In addition, the code related to bootwrapper console output via OF are moved to a new ofconsole.c file. Both these files are included in the wrapper.a library where they can be used by both full-OF and partial OF platforms. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
- Loading branch information
David Gibson
authored and
Paul Mackerras
committed
Jun 14, 2007
1 parent
a0ae9c7
commit 2e60161
Showing
5 changed files
with
240 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#ifndef _PPC_BOOT_OF_H_ | ||
#define _PPC_BOOT_OF_H_ | ||
|
||
typedef void *phandle; | ||
typedef void *ihandle; | ||
|
||
void of_init(void *promptr); | ||
int of_call_prom(const char *service, int nargs, int nret, ...); | ||
void *of_claim(unsigned long virt, unsigned long size, unsigned long align); | ||
void of_exit(void); | ||
|
||
/* Console functions */ | ||
void of_console_init(void); | ||
|
||
#endif /* _PPC_BOOT_OF_H_ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
/* | ||
* OF console routines | ||
* | ||
* Copyright (C) Paul Mackerras 1997. | ||
* | ||
* 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. | ||
*/ | ||
#include <stddef.h> | ||
#include "types.h" | ||
#include "elf.h" | ||
#include "string.h" | ||
#include "stdio.h" | ||
#include "page.h" | ||
#include "ops.h" | ||
|
||
#include "of.h" | ||
|
||
static void *of_stdout_handle; | ||
|
||
static int of_console_open(void) | ||
{ | ||
void *devp; | ||
|
||
if (((devp = finddevice("/chosen")) != NULL) | ||
&& (getprop(devp, "stdout", &of_stdout_handle, | ||
sizeof(of_stdout_handle)) | ||
== sizeof(of_stdout_handle))) | ||
return 0; | ||
|
||
return -1; | ||
} | ||
|
||
static void of_console_write(char *buf, int len) | ||
{ | ||
of_call_prom("write", 3, 1, of_stdout_handle, buf, len); | ||
} | ||
|
||
void of_console_init(void) | ||
{ | ||
console_ops.open = of_console_open; | ||
console_ops.write = of_console_write; | ||
} |
Oops, something went wrong.