92,95c92,99
< // Load kernel code
< kernel = createObjectFile(params()->kernel_path);
< if (kernel == NULL)
< fatal("Could not load kernel file %s", params()->kernel_path);
---
> if (params()->kernel_path == "") {
> warn("No kernel set for full system simulation. Assuming you know what"
> " you're doing...\n");
> } else {
> // Load kernel code
> kernel = createObjectFile(params()->kernel_path);
> if (kernel == NULL)
> fatal("Could not load kernel file %s", params()->kernel_path);
97,98c101,102
< // Load program sections into memory
< kernel->loadSections(&functionalPort, LoadAddrMask);
---
> // Load program sections into memory
> kernel->loadSections(&functionalPort, LoadAddrMask);
100,103c104,107
< // setup entry points
< kernelStart = kernel->textBase();
< kernelEnd = kernel->bssBase() + kernel->bssSize();
< kernelEntry = kernel->entryPoint();
---
> // setup entry points
> kernelStart = kernel->textBase();
> kernelEnd = kernel->bssBase() + kernel->bssSize();
> kernelEntry = kernel->entryPoint();
105,107c109,111
< // load symbols
< if (!kernel->loadGlobalSymbols(kernelSymtab))
< panic("could not load kernel symbols\n");
---
> // load symbols
> if (!kernel->loadGlobalSymbols(kernelSymtab))
> panic("could not load kernel symbols\n");
109,110c113,114
< if (!kernel->loadLocalSymbols(kernelSymtab))
< panic("could not load kernel local symbols\n");
---
> if (!kernel->loadLocalSymbols(kernelSymtab))
> panic("could not load kernel local symbols\n");
112,113c116,117
< if (!kernel->loadGlobalSymbols(debugSymbolTable))
< panic("could not load kernel symbols\n");
---
> if (!kernel->loadGlobalSymbols(debugSymbolTable))
> panic("could not load kernel symbols\n");
115,116c119,120
< if (!kernel->loadLocalSymbols(debugSymbolTable))
< panic("could not load kernel local symbols\n");
---
> if (!kernel->loadLocalSymbols(debugSymbolTable))
> panic("could not load kernel local symbols\n");
118,121c122,126
< DPRINTF(Loader, "Kernel start = %#x\n", kernelStart);
< DPRINTF(Loader, "Kernel end = %#x\n", kernelEnd);
< DPRINTF(Loader, "Kernel entry = %#x\n", kernelEntry);
< DPRINTF(Loader, "Kernel loaded...\n");
---
> DPRINTF(Loader, "Kernel start = %#x\n", kernelStart);
> DPRINTF(Loader, "Kernel end = %#x\n", kernelEnd);
> DPRINTF(Loader, "Kernel entry = %#x\n", kernelEntry);
> DPRINTF(Loader, "Kernel loaded...\n");
> }