mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-05-22 07:03:46 +00:00
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2009 Lemote Inc.
|
|
* Author: Wu Zhangjin, wuzhangjin@gmail.com
|
|
*/
|
|
|
|
#include <linux/memblock.h>
|
|
#include <asm/bootinfo.h>
|
|
#include <asm/traps.h>
|
|
#include <asm/smp-ops.h>
|
|
#include <asm/cacheflush.h>
|
|
|
|
#include <loongson.h>
|
|
|
|
/* Loongson CPU address windows config space base address */
|
|
unsigned long __maybe_unused _loongson_addrwincfg_base;
|
|
|
|
static void __init mips_nmi_setup(void)
|
|
{
|
|
void *base;
|
|
extern char except_vec_nmi;
|
|
|
|
base = (void *)(CAC_BASE + 0x380);
|
|
memcpy(base, &except_vec_nmi, 0x80);
|
|
flush_icache_range((unsigned long)base, (unsigned long)base + 0x80);
|
|
}
|
|
|
|
void __init prom_init(void)
|
|
{
|
|
#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
|
|
_loongson_addrwincfg_base = (unsigned long)
|
|
ioremap(LOONGSON_ADDRWINCFG_BASE, LOONGSON_ADDRWINCFG_SIZE);
|
|
#endif
|
|
|
|
prom_init_cmdline();
|
|
prom_init_env();
|
|
|
|
/* init base address of io space */
|
|
set_io_port_base((unsigned long)
|
|
ioremap(LOONGSON_PCIIO_BASE, LOONGSON_PCIIO_SIZE));
|
|
|
|
#ifdef CONFIG_NUMA
|
|
prom_init_numa_memory();
|
|
#else
|
|
prom_init_memory();
|
|
#endif
|
|
|
|
/*init the uart base address */
|
|
prom_init_uart_base();
|
|
register_smp_ops(&loongson3_smp_ops);
|
|
board_nmi_handler_setup = mips_nmi_setup;
|
|
}
|
|
|
|
void __init prom_free_prom_memory(void)
|
|
{
|
|
}
|