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 16 unsigned long memsize; 17 18 void __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 39 void __init prom_free_prom_memory(void) 40 { 41 } 42 43 void __init plat_mem_setup(void) 44 { 45 memblock_add(0x0, (memsize << 20)); 46 } 47