// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2011 Zhang, Keguang <keguang.zhang@gmail.com> * * Modified from arch/mips/pnx833x/common/prom.c. */ #include <linux/io.h> #include <linux/init.h> #include <linux/memblock.h> #include <linux/serial_reg.h> #include <asm/fw/fw.h> #include <loongson1.h> unsigned long memsize; void __init prom_init(void) { void __iomem *uart_base; fw_init_cmdline(); memsize = fw_getenvl("memsize"); if(!memsize) memsize = DEFAULT_MEMSIZE; if (strstr(arcs_cmdline, "console=ttyS3")) uart_base = ioremap(LS1X_UART3_BASE, 0x0f); else if (strstr(arcs_cmdline, "console=ttyS2")) uart_base = ioremap(LS1X_UART2_BASE, 0x0f); else if (strstr(arcs_cmdline, "console=ttyS1")) uart_base = ioremap(LS1X_UART1_BASE, 0x0f); else uart_base = ioremap(LS1X_UART0_BASE, 0x0f); setup_8250_early_printk_port((unsigned long)uart_base, 0, 0); } void __init plat_mem_setup(void) { memblock_add(0x0, (memsize << 20)); }