machine_desc
extern const struct machine_desc *machine_desc;
extern const struct machine_desc __arch_info_begin[], __arch_info_end[];
static const struct machine_desc __mach_desc_##_type \
extern const struct machine_desc *setup_machine_fdt(void *dt);
static const struct machine_desc *mdesc = __arch_info_begin;
const struct machine_desc *m = mdesc;
const struct machine_desc * __init setup_machine_fdt(void *dt)
const struct machine_desc *mdesc;
if (machine_desc->init_per_cpu)
machine_desc->init_per_cpu(smp_processor_id());
const struct machine_desc *machine_desc;
machine_desc = setup_machine_fdt((void *)uboot_arg);
use_embedded_dtb = !machine_desc;
machine_desc = setup_machine_fdt(__dtb_start);
if (!machine_desc)
if (machine_desc->init_early)
machine_desc->init_early();
if (machine_desc->init_machine)
machine_desc->init_machine();
if (machine_desc->init_late)
machine_desc->init_late();
if (machine_desc->init_per_cpu)
machine_desc->init_per_cpu(cpu);
extern const struct machine_desc *machine_desc;
extern const struct machine_desc __arch_info_begin[], __arch_info_end[];
static const struct machine_desc __mach_desc_##_type \
static const struct machine_desc __mach_desc_##_name \
struct machine_desc;
void arm_memblock_init(const struct machine_desc *);
extern const struct machine_desc *setup_machine_fdt(void *dt_virt);
static inline const struct machine_desc *setup_machine_fdt(void *dt_virt)
struct machine_desc;
void paging_init(const struct machine_desc *desc);
void early_mm_init(const struct machine_desc *);
void setup_dma_zone(const struct machine_desc *desc);
DEFINE(SIZEOF_MACHINE_DESC, sizeof(struct machine_desc));
DEFINE(MACHINFO_TYPE, offsetof(struct machine_desc, nr));
DEFINE(MACHINFO_NAME, offsetof(struct machine_desc, name));
const struct machine_desc *setup_machine_tags(void *__atags_vaddr,
static inline const struct machine_desc * __init __noreturn
const struct machine_desc * __init
const struct machine_desc *mdesc = NULL, *p;
static const struct machine_desc *mdesc = __arch_info_begin;
const struct machine_desc *m = mdesc;
const struct machine_desc * __init setup_machine_fdt(void *dt_virt)
const struct machine_desc *mdesc, *mdesc_best = NULL;
if (IS_ENABLED(CONFIG_OF) && !machine_desc->init_irq)
machine_desc->init_irq();
(machine_desc->l2c_aux_mask || machine_desc->l2c_aux_val)) {
outer_cache.write_sec = machine_desc->l2c_write_sec;
ret = l2x0_of_init(machine_desc->l2c_aux_val,
machine_desc->l2c_aux_mask);
return irq_set_nr_irqs(machine_desc->nr_irqs ? : NR_IRQS);
const struct machine_desc *mdesc = NULL;
machine_desc = mdesc;
const struct machine_desc *machine_desc __initdata;
const struct machine_desc *p;
static void __init request_standard_resources(const struct machine_desc *mdesc)
if (machine_desc->init_machine)
machine_desc->init_machine();
if (machine_desc->init_late)
machine_desc->init_late();
if (machine_desc->init_time) {
machine_desc->init_time();
void __init arm_memblock_init(const struct machine_desc *mdesc)
void __init setup_dma_zone(const struct machine_desc *mdesc)
static void __init devicemaps_init(const struct machine_desc *mdesc)
static void __init early_paging_init(const struct machine_desc *mdesc)
static void __init early_paging_init(const struct machine_desc *mdesc)
void __init paging_init(const struct machine_desc *mdesc)
void __init early_mm_init(const struct machine_desc *mdesc)
void __init paging_init(const struct machine_desc *mdesc)