On Tue, 7 Apr 2020 at 08:26, Cédric Le Goater <c...@kaod.org> wrote: > > On 4/7/20 10:19 AM, Philippe Mathieu-Daudé wrote: > > > > > > On 4/7/20 9:38 AM, Joel Stanley wrote: > >> On Tue, 7 Apr 2020 at 07:25, Joel Stanley <j...@jms.id.au> wrote:
> >>> static void write_boot_rom(DriveInfo *dinfo, hwaddr addr, size_t > >>> rom_size, > >>> @@ -270,6 +322,19 @@ static void aspeed_machine_init(MachineState > >>> *machine) > >>> } > >>> } > >>> > >>> + if (machine->kernel_filename) { > >> > >> I just realised this shouldn't be executed on non-ast2600 platforms. > >> We could test for the number of CPUs like this: > >> > >> if (machine->kernel_filename && aspeed_board_binfo.nb_cpus > 1) { > > > > if (!strcmp(amc->soc_name, "ast2600")) { ? > > or a 'bool' under AspeedMachineClass ? I considered both, but I went with the number of configured CPUs as this means we only set it up when configured for SMP, which is the only time it's worth doing. Thanks for taking a look. > A part from that, > > Reviewed-by: Cédric Le Goater <c...@kaod.org> > Tested-by: Cédric Le Goater <c...@kaod.org> > > C. > > > > > >> > >>> + /* With no u-boot we must set up a boot stub for the secondary > >>> CPU */ > >>> + MemoryRegion *smpboot = g_new(MemoryRegion, 1); > >>> + memory_region_init_ram(smpboot, OBJECT(bmc), "aspeed.smpboot", > >>> + 0x80, &error_abort); > >>> + memory_region_add_subregion(get_system_memory(), > >>> + AST_SMP_MAILBOX_BASE, smpboot); > >>> + > >>> + aspeed_board_binfo.write_secondary_boot = aspeed_write_smpboot; > >>> + aspeed_board_binfo.secondary_cpu_reset_hook = > >>> aspeed_reset_secondary; > >>> + aspeed_board_binfo.smp_loader_start = AST_SMP_MBOX_CODE; > >>> + } > >>> + > >>> aspeed_board_binfo.ram_size = ram_size; > >>> aspeed_board_binfo.loader_start = sc->memmap[ASPEED_SDRAM]; > >>> aspeed_board_binfo.nb_cpus = bmc->soc.num_cpus; > >>> -- > >>> 2.25.1 > >>> > >> > > >