mirror of https://gitee.com/openkylin/qemu.git
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
|
@ -63,7 +63,7 @@ struct ppc4xx_bd_info_t {
|
|||
};
|
||||
|
||||
/* 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 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_cmdline = machine->kernel_cmdline;
|
||||
const char *initrd_filename = machine->initrd_filename;
|
||||
ppc4xx_bd_info_t bd;
|
||||
PowerPCCPU *cpu;
|
||||
CPUPPCState *env;
|
||||
DeviceState *dev;
|
||||
|
@ -221,32 +220,7 @@ static void ref405ep_init(MachineState *machine)
|
|||
/* Load kernel */
|
||||
linux_boot = (kernel_filename != NULL);
|
||||
if (linux_boot) {
|
||||
memset(&bd, 0, sizeof(bd));
|
||||
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);
|
||||
bdloc = ppc405_set_bootinfo(env, machine->ram_size);
|
||||
env->gpr[3] = bdloc;
|
||||
kernel_base = KERNEL_LOAD_ADDR;
|
||||
/* now we can load the kernel */
|
||||
|
|
|
@ -41,7 +41,35 @@
|
|||
#include "qapi/error.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);
|
||||
ram_addr_t bdloc;
|
||||
|
@ -93,6 +121,17 @@ ram_addr_t ppc405_set_bootinfo(CPUPPCState *env, ppc4xx_bd_info_t *bd)
|
|||
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 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue