| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
- */
- #ifndef _ASM_BOOTINFO_H
- #define _ASM_BOOTINFO_H
- #include <linux/types.h>
- #include <asm/setup.h>
- const char *get_system_type(void);
- extern void init_environ(void);
- extern void memblock_init(void);
- extern void platform_init(void);
- extern int __init init_numa_memory(void);
- struct loongson_board_info {
- int bios_size;
- const char *bios_vendor;
- const char *bios_version;
- const char *bios_release_date;
- const char *board_name;
- const char *board_vendor;
- };
- #define NR_WORDS DIV_ROUND_UP(NR_CPUS, BITS_PER_LONG)
- /*
- * The "core" of cores_per_node and cores_per_package stands for a
- * logical core, which means in a SMT system it stands for a thread.
- */
- struct loongson_system_configuration {
- int nr_cpus;
- int nr_nodes;
- int boot_cpu_id;
- int cores_per_node;
- int cores_per_package;
- unsigned long cores_io_master[NR_WORDS];
- unsigned long suspend_addr;
- const char *cpuname;
- };
- extern u64 efi_system_table;
- extern unsigned long fw_arg0, fw_arg1, fw_arg2;
- extern struct loongson_board_info b_info;
- extern struct loongson_system_configuration loongson_sysconf;
- static inline bool io_master(int cpu)
- {
- return test_bit(cpu, loongson_sysconf.cores_io_master);
- }
- #endif /* _ASM_BOOTINFO_H */
|