| /* |
| * |
| */ |
| #undef BOOTSTRAP |
| #include "config.h" |
| #include "libopenbios/bindings.h" |
| #include "libopenbios/elfload.h" |
| #include "arch/common/nvram.h" |
| #include "libc/diskio.h" |
| #include "libopenbios/sys_info.h" |
| |
| int elf_load(struct sys_info *, const char *filename, const char *cmdline); |
| int linux_load(struct sys_info *, const char *filename, const char *cmdline); |
| |
| void boot(void); |
| |
| void boot(void) |
| { |
| char *path=pop_fstr_copy(), *param; |
| |
| // char *param="root=/dev/hda2 console=ttyS0,115200n8 console=tty0"; |
| |
| if(!path) { |
| printk("[x86] Booting default not supported.\n"); |
| return; |
| } |
| |
| param = strchr(path, ' '); |
| if(param) { |
| *param = '\0'; |
| param++; |
| } |
| |
| printk("[x86] Booting file '%s' with parameters '%s'\n",path, param); |
| |
| if (elf_load(&sys_info, path, param) == LOADER_NOT_SUPPORT) |
| if (linux_load(&sys_info, path, param) == LOADER_NOT_SUPPORT) |
| printk("Unsupported image format\n"); |
| |
| free(path); |
| } |