18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
48c2ecf20Sopenharmony_ci * License.  See the file COPYING in the main directory of this archive
58c2ecf20Sopenharmony_ci * for more details.
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Copyright (C) 2020 Loongson Technology Co., Ltd.
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci#ifndef _ASM_BOOTINFO_H
108c2ecf20Sopenharmony_ci#define _ASM_BOOTINFO_H
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include <linux/types.h>
138c2ecf20Sopenharmony_ci#include <asm/setup.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciconst char *get_system_type(void);
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciextern void memblock_init(void);
188c2ecf20Sopenharmony_ciextern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min,  phys_addr_t sz_max);
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciextern void early_init(void);
218c2ecf20Sopenharmony_ciextern void init_environ(void);
228c2ecf20Sopenharmony_ciextern void platform_init(void);
238c2ecf20Sopenharmony_ciextern void plat_mem_setup(void);
248c2ecf20Sopenharmony_ciextern int __init init_numa_memory(void);
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_cistruct loongson_board_info {
278c2ecf20Sopenharmony_ci	int bios_size;
288c2ecf20Sopenharmony_ci	const char *bios_vendor;
298c2ecf20Sopenharmony_ci	const char *bios_version;
308c2ecf20Sopenharmony_ci	const char *bios_release_date;
318c2ecf20Sopenharmony_ci	const char *board_name;
328c2ecf20Sopenharmony_ci	const char *board_vendor;
338c2ecf20Sopenharmony_ci};
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_cistruct loongson_system_configuration {
368c2ecf20Sopenharmony_ci	int nr_cpus;
378c2ecf20Sopenharmony_ci	int nr_nodes;
388c2ecf20Sopenharmony_ci	int nr_io_pics;
398c2ecf20Sopenharmony_ci	int boot_cpu_id;
408c2ecf20Sopenharmony_ci	int cores_per_node;
418c2ecf20Sopenharmony_ci	int cores_per_package;
428c2ecf20Sopenharmony_ci	const char *cpuname;
438c2ecf20Sopenharmony_ci	u64 suspend_addr;
448c2ecf20Sopenharmony_ci};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciextern u64 efi_system_table;
478c2ecf20Sopenharmony_ciextern struct loongson_board_info b_info;
488c2ecf20Sopenharmony_ciextern struct loongson_system_configuration loongson_sysconf;
498c2ecf20Sopenharmony_ciextern unsigned long fw_arg0, fw_arg1, fw_arg2;
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#endif /* _ASM_BOOTINFO_H */
52