mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
IEEE-1275 spec compliance. This patch implements the following: 1) Fix bootpath/bootargs handling so that default values are read from NVRAM, and allow multiple space-separated values to be specified. 2) With correct bootargs handling in place, move the ELF loader over to the new libopenbios unified loaders. 3) Remove all the loader code from all architecture directories sine we don't need it anymore. 4) Simplify the boot word so it invokes platform-specific code where required, then calls load and go as per the specification. Tested on all my available images for SPARC32, SPARC64 and PPC, and compile-tested on x86. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@828 f158a5a8-5612-0410-a976-696ce0be7e32
53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
/* tag: openbios loader prototypes for sparc32
|
|
*
|
|
* Copyright (C) 2004 Stefan Reinauer
|
|
*
|
|
* See the file "COPYING" for further information about
|
|
* the copyright and warranty status of this work.
|
|
*/
|
|
|
|
// linux_load.c
|
|
int linux_load(struct sys_info *info, const char *file, const char *cmdline);
|
|
|
|
// context.c
|
|
extern struct context *__context;
|
|
unsigned int start_elf(unsigned long entry_point, unsigned long param);
|
|
|
|
// romvec.c
|
|
void *init_openprom(void);
|
|
|
|
// boot.c
|
|
extern const char *bootpath;
|
|
extern void boot(void);
|
|
extern void go(void);
|
|
|
|
// sys_info.c
|
|
extern unsigned int qemu_mem_size;
|
|
extern void collect_sys_info(struct sys_info *info);
|
|
|
|
// console.c
|
|
void cls(void);
|
|
|
|
// romvec.c
|
|
extern struct linux_arguments_v0 obp_arg;
|
|
extern const void *romvec;
|
|
|
|
// openbios.c
|
|
extern int qemu_machine_type;
|
|
|
|
// arch/sparc32/lib.c
|
|
struct linux_mlist_v0;
|
|
extern struct linux_mlist_v0 *ptphys;
|
|
extern struct linux_mlist_v0 *ptmap;
|
|
extern struct linux_mlist_v0 *ptavail;
|
|
|
|
void ob_init_mmu(void);
|
|
void init_mmu_swift(void);
|
|
char *obp_dumb_mmap(char *va, int which_io, unsigned int pa,
|
|
unsigned int size);
|
|
void obp_dumb_munmap(__attribute__((unused)) char *va,
|
|
__attribute__((unused)) unsigned int size);
|
|
char *obp_dumb_memalloc(char *va, unsigned int size);
|
|
void obp_dumb_memfree(__attribute__((unused))char *va,
|
|
__attribute__((unused))unsigned sz);
|