prom.c (973B)
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (c) 2011 Zhang, Keguang <keguang.zhang@gmail.com> 4 * 5 * Modified from arch/mips/pnx833x/common/prom.c. 6 */ 7 8#include <linux/io.h> 9#include <linux/init.h> 10#include <linux/memblock.h> 11#include <linux/serial_reg.h> 12#include <asm/fw/fw.h> 13 14#include <loongson1.h> 15 16unsigned long memsize; 17 18void __init prom_init(void) 19{ 20 void __iomem *uart_base; 21 22 fw_init_cmdline(); 23 24 memsize = fw_getenvl("memsize"); 25 if(!memsize) 26 memsize = DEFAULT_MEMSIZE; 27 28 if (strstr(arcs_cmdline, "console=ttyS3")) 29 uart_base = ioremap(LS1X_UART3_BASE, 0x0f); 30 else if (strstr(arcs_cmdline, "console=ttyS2")) 31 uart_base = ioremap(LS1X_UART2_BASE, 0x0f); 32 else if (strstr(arcs_cmdline, "console=ttyS1")) 33 uart_base = ioremap(LS1X_UART1_BASE, 0x0f); 34 else 35 uart_base = ioremap(LS1X_UART0_BASE, 0x0f); 36 setup_8250_early_printk_port((unsigned long)uart_base, 0, 0); 37} 38 39void __init plat_mem_setup(void) 40{ 41 memblock_add(0x0, (memsize << 20)); 42}