mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
ppc/ppc405: Introduce ppc405_set_default_bootinfo()
This routine is a small helper to cleanup the code. The update of the flash fields were removed because there are not of any use when booting from a Linux kernel image. It should be functionally equivalent. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20211206103712.1866296-11-clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
13d63de59b
commit
e3931ecab3
3 changed files with 42 additions and 29 deletions
|
@ -63,7 +63,7 @@ struct ppc4xx_bd_info_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* PowerPC 405 core */
|
/* PowerPC 405 core */
|
||||||
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd);
|
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size);
|
||||||
|
|
||||||
void ppc4xx_plb_init(CPUPPCState *env);
|
void ppc4xx_plb_init(CPUPPCState *env);
|
||||||
void ppc405_ebc_init(CPUPPCState *env);
|
void ppc405_ebc_init(CPUPPCState *env);
|
||||||
|
|
|
@ -142,7 +142,6 @@ static void ref405ep_init(MachineState *machine)
|
||||||
const char *kernel_filename = machine->kernel_filename;
|
const char *kernel_filename = machine->kernel_filename;
|
||||||
const char *kernel_cmdline = machine->kernel_cmdline;
|
const char *kernel_cmdline = machine->kernel_cmdline;
|
||||||
const char *initrd_filename = machine->initrd_filename;
|
const char *initrd_filename = machine->initrd_filename;
|
||||||
ppc4xx_bd_info_t bd;
|
|
||||||
PowerPCCPU *cpu;
|
PowerPCCPU *cpu;
|
||||||
CPUPPCState *env;
|
CPUPPCState *env;
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
|
@ -221,32 +220,7 @@ static void ref405ep_init(MachineState *machine)
|
||||||
/* Load kernel */
|
/* Load kernel */
|
||||||
linux_boot = (kernel_filename != NULL);
|
linux_boot = (kernel_filename != NULL);
|
||||||
if (linux_boot) {
|
if (linux_boot) {
|
||||||
memset(&bd, 0, sizeof(bd));
|
bdloc = ppc405_set_bootinfo(env, machine->ram_size);
|
||||||
bd.bi_memstart = PPC405EP_SDRAM_BASE;
|
|
||||||
bd.bi_memsize = machine->ram_size;
|
|
||||||
bd.bi_flashstart = -bios_size;
|
|
||||||
bd.bi_flashsize = -bios_size;
|
|
||||||
bd.bi_flashoffset = 0;
|
|
||||||
bd.bi_sramstart = PPC405EP_SRAM_BASE;
|
|
||||||
bd.bi_sramsize = PPC405EP_SRAM_SIZE;
|
|
||||||
bd.bi_bootflags = 0;
|
|
||||||
bd.bi_intfreq = 133333333;
|
|
||||||
bd.bi_busfreq = 33333333;
|
|
||||||
bd.bi_baudrate = 115200;
|
|
||||||
bd.bi_s_version[0] = 'Q';
|
|
||||||
bd.bi_s_version[1] = 'M';
|
|
||||||
bd.bi_s_version[2] = 'U';
|
|
||||||
bd.bi_s_version[3] = '\0';
|
|
||||||
bd.bi_r_version[0] = 'Q';
|
|
||||||
bd.bi_r_version[1] = 'E';
|
|
||||||
bd.bi_r_version[2] = 'M';
|
|
||||||
bd.bi_r_version[3] = 'U';
|
|
||||||
bd.bi_r_version[4] = '\0';
|
|
||||||
bd.bi_procfreq = 133333333;
|
|
||||||
bd.bi_plb_busfreq = 33333333;
|
|
||||||
bd.bi_pci_busfreq = 33333333;
|
|
||||||
bd.bi_opbfreq = 33333333;
|
|
||||||
bdloc = ppc405_set_bootinfo(env, &bd);
|
|
||||||
env->gpr[3] = bdloc;
|
env->gpr[3] = bdloc;
|
||||||
kernel_base = KERNEL_LOAD_ADDR;
|
kernel_base = KERNEL_LOAD_ADDR;
|
||||||
/* now we can load the kernel */
|
/* now we can load the kernel */
|
||||||
|
|
|
@ -41,7 +41,35 @@
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
||||||
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
|
static void ppc405_set_default_bootinfo(ppc4xx_bd_info_t *bd,
|
||||||
|
ram_addr_t ram_size)
|
||||||
|
{
|
||||||
|
memset(bd, 0, sizeof(*bd));
|
||||||
|
|
||||||
|
bd->bi_memstart = PPC405EP_SDRAM_BASE;
|
||||||
|
bd->bi_memsize = ram_size;
|
||||||
|
bd->bi_sramstart = PPC405EP_SRAM_BASE;
|
||||||
|
bd->bi_sramsize = PPC405EP_SRAM_SIZE;
|
||||||
|
bd->bi_bootflags = 0;
|
||||||
|
bd->bi_intfreq = 133333333;
|
||||||
|
bd->bi_busfreq = 33333333;
|
||||||
|
bd->bi_baudrate = 115200;
|
||||||
|
bd->bi_s_version[0] = 'Q';
|
||||||
|
bd->bi_s_version[1] = 'M';
|
||||||
|
bd->bi_s_version[2] = 'U';
|
||||||
|
bd->bi_s_version[3] = '\0';
|
||||||
|
bd->bi_r_version[0] = 'Q';
|
||||||
|
bd->bi_r_version[1] = 'E';
|
||||||
|
bd->bi_r_version[2] = 'M';
|
||||||
|
bd->bi_r_version[3] = 'U';
|
||||||
|
bd->bi_r_version[4] = '\0';
|
||||||
|
bd->bi_procfreq = 133333333;
|
||||||
|
bd->bi_plb_busfreq = 33333333;
|
||||||
|
bd->bi_pci_busfreq = 33333333;
|
||||||
|
bd->bi_opbfreq = 33333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ram_addr_t __ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
|
||||||
{
|
{
|
||||||
CPUState *cs = env_cpu(env);
|
CPUState *cs = env_cpu(env);
|
||||||
ram_addr_t bdloc;
|
ram_addr_t bdloc;
|
||||||
|
@ -93,6 +121,17 @@ ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
|
||||||
return bdloc;
|
return bdloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ram_addr_t ram_size)
|
||||||
|
{
|
||||||
|
ppc4xx_bd_info_t bd;
|
||||||
|
|
||||||
|
memset(&bd, 0, sizeof(bd));
|
||||||
|
|
||||||
|
ppc405_set_default_bootinfo(&bd, ram_size);
|
||||||
|
|
||||||
|
return __ppc405_set_bootinfo(env, &bd);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Shared peripherals */
|
/* Shared peripherals */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue