[OpenBIOS] [commit] r801 - in trunk/openbios-devel: arch/sparc32 arch/sparc64 arch/x86 include/libopenbios libopenbios
repository service
svn at openbios.org
Sun Jun 27 16:00:37 CEST 2010
Author: mcayland
Date: Sun Jun 27 16:00:37 2010
New Revision: 801
URL: http://tracker.coreboot.org/trac/openbios/changeset/801
Log:
Move a.out loader into the new C load implementation (also fix up the header includes in load.c).
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
Modified:
trunk/openbios-devel/arch/sparc32/boot.c
trunk/openbios-devel/arch/sparc32/boot.h
trunk/openbios-devel/arch/sparc64/boot.c
trunk/openbios-devel/arch/sparc64/boot.h
trunk/openbios-devel/arch/x86/boot.c
trunk/openbios-devel/arch/x86/boot.h
trunk/openbios-devel/arch/x86/openbios.c
trunk/openbios-devel/include/libopenbios/aout_load.h
trunk/openbios-devel/include/libopenbios/sys_info.h
trunk/openbios-devel/libopenbios/aout_load.c
trunk/openbios-devel/libopenbios/load.c
Modified: trunk/openbios-devel/arch/sparc32/boot.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/boot.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/sparc32/boot.c Sun Jun 27 16:00:37 2010 (r801)
@@ -54,7 +54,7 @@
#ifdef CONFIG_LOADER_AOUT
/* a.out loader */
- aout_load(&sys_info, path);
+ aout_load(&sys_info, dev);
feval("state-valid @");
valid = POP();
if (valid)
Modified: trunk/openbios-devel/arch/sparc32/boot.h
==============================================================================
--- trunk/openbios-devel/arch/sparc32/boot.h Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/sparc32/boot.h Sun Jun 27 16:00:37 2010 (r801)
@@ -17,7 +17,6 @@
void *init_openprom(void);
// boot.c
-extern struct sys_info sys_info;
extern const char *bootpath;
extern void boot(void);
extern void go(void);
Modified: trunk/openbios-devel/arch/sparc64/boot.c
==============================================================================
--- trunk/openbios-devel/arch/sparc64/boot.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/sparc64/boot.c Sun Jun 27 16:00:37 2010 (r801)
@@ -46,7 +46,7 @@
#ifdef CONFIG_LOADER_AOUT
/* a.out loader */
- aout_load(&sys_info, path);
+ aout_load(&sys_info, dev);
feval("state-valid @");
valid = POP();
if (valid)
Modified: trunk/openbios-devel/arch/sparc64/boot.h
==============================================================================
--- trunk/openbios-devel/arch/sparc64/boot.h Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/sparc64/boot.h Sun Jun 27 16:00:37 2010 (r801)
@@ -15,7 +15,6 @@
uint64_t start_client_image(uint64_t entry_point, uint64_t cif_handler);
// boot.c
-extern struct sys_info sys_info;
extern uint64_t kernel_image;
extern uint64_t kernel_size;
extern uint64_t qemu_cmdline;
Modified: trunk/openbios-devel/arch/x86/boot.c
==============================================================================
--- trunk/openbios-devel/arch/x86/boot.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/x86/boot.c Sun Jun 27 16:00:37 2010 (r801)
@@ -43,7 +43,7 @@
#ifdef CONFIG_LOADER_AOUT
/* a.out loader */
- aout_load(&sys_info, path);
+ aout_load(&sys_info, dev);
feval("state-valid @");
valid = POP();
if (valid)
Modified: trunk/openbios-devel/arch/x86/boot.h
==============================================================================
--- trunk/openbios-devel/arch/x86/boot.h Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/x86/boot.h Sun Jun 27 16:00:37 2010 (r801)
@@ -14,6 +14,5 @@
unsigned int start_elf(unsigned long entry_point, unsigned long param);
/* boot.c */
-extern struct sys_info sys_info;
extern void boot(void);
extern void go(void);
Modified: trunk/openbios-devel/arch/x86/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/x86/openbios.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/arch/x86/openbios.c Sun Jun 27 16:00:37 2010 (r801)
@@ -75,7 +75,6 @@
int openbios(void)
{
- extern struct sys_info sys_info;
#ifdef CONFIG_DEBUG_CONSOLE
#ifdef CONFIG_DEBUG_CONSOLE_SERIAL
uart_init(CONFIG_SERIAL_PORT, CONFIG_SERIAL_SPEED);
Modified: trunk/openbios-devel/include/libopenbios/aout_load.h
==============================================================================
--- trunk/openbios-devel/include/libopenbios/aout_load.h Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/include/libopenbios/aout_load.h Sun Jun 27 16:00:37 2010 (r801)
@@ -21,7 +21,7 @@
#include "libopenbios/sys_info.h"
extern int is_aout(struct exec *ehdr);
-extern int aout_load(struct sys_info *info, const char *filename);
+extern int aout_load(struct sys_info *info, ihandle_t dev);
extern void aout_init_program(void);
#endif /* _H_AOUTLOAD */
Modified: trunk/openbios-devel/include/libopenbios/sys_info.h
==============================================================================
--- trunk/openbios-devel/include/libopenbios/sys_info.h Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/include/libopenbios/sys_info.h Sun Jun 27 16:00:37 2010 (r801)
@@ -22,6 +22,8 @@
unsigned long *dict_end;
};
+extern struct sys_info sys_info;
+
void collect_elfboot_info(struct sys_info *info);
void collect_linuxbios_info(struct sys_info *info);
Modified: trunk/openbios-devel/libopenbios/aout_load.c
==============================================================================
--- trunk/openbios-devel/libopenbios/aout_load.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/libopenbios/aout_load.c Sun Jun 27 16:00:37 2010 (r801)
@@ -68,7 +68,7 @@
}
int
-aout_load(struct sys_info *info, const char *filename)
+aout_load(struct sys_info *info, ihandle_t dev)
{
int retval = -1;
struct exec ehdr;
@@ -80,7 +80,7 @@
/* Mark the saved-program-state as invalid */
feval("0 state-valid !");
- fd = open_io(filename);
+ fd = open_ih(dev);
if (!fd)
goto out;
@@ -113,8 +113,8 @@
if (size < 7680)
size = 7680;
-
- start = 0x4000; // N_TXTADDR(ehdr);
+ fword("load-base");
+ start = POP(); // N_TXTADDR(ehdr);
if (!check_mem_ranges(info, start, size))
goto out;
Modified: trunk/openbios-devel/libopenbios/load.c
==============================================================================
--- trunk/openbios-devel/libopenbios/load.c Sun Jun 27 15:14:03 2010 (r800)
+++ trunk/openbios-devel/libopenbios/load.c Sun Jun 27 16:00:37 2010 (r801)
@@ -17,15 +17,30 @@
#include "config.h"
#include "kernel/kernel.h"
#include "libopenbios/bindings.h"
+#include "libopenbios/sys_info.h"
#include "libopenbios/load.h"
+#ifdef CONFIG_LOADER_AOUT
+#include "libopenbios/aout_load.h"
+#endif
+
+#ifdef CONFIG_LOADER_FCODE
#include "libopenbios/fcode_load.h"
+#endif
+
+#ifdef CONFIG_LOADER_FORTH
#include "libopenbios/forth_load.h"
+#endif
+
void load(ihandle_t dev)
{
/* Invoke the loaders on the specified device */
+#ifdef CONFIG_LOADER_AOUT
+ aout_load(&sys_info, dev);
+#endif
+
#ifdef CONFIG_LOADER_FCODE
fcode_load(dev);
#endif
More information about the OpenBIOS
mailing list