Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/mips/loongson32/common/prom.c
26481 views
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
/*
3
* Copyright (c) 2011 Zhang, Keguang <[email protected]>
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 plat_mem_setup(void)
40
{
41
memblock_add(0x0, (memsize << 20));
42
}
43
44