forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.3 KiB
53 lines
1.3 KiB
// SPDX-License-Identifier: GPL-2.0-or-later |
|
/* |
|
* Based on Ocelot Linux port, which is |
|
* Copyright 2001 MontaVista Software Inc. |
|
* Author: [email protected] or [email protected] |
|
* |
|
* Copyright 2003 ICT CAS |
|
* Author: Michael Guo <[email protected]> |
|
* |
|
* Copyright (C) 2007 Lemote Inc. & Institute of Computing Technology |
|
* Author: Fuxin Zhang, [email protected] |
|
* |
|
* Copyright (C) 2009 Lemote Inc. |
|
* Author: Wu Zhangjin, [email protected] |
|
*/ |
|
#include <linux/export.h> |
|
#include <asm/bootinfo.h> |
|
#include <asm/fw/fw.h> |
|
#include <loongson.h> |
|
|
|
u32 cpu_clock_freq; |
|
EXPORT_SYMBOL(cpu_clock_freq); |
|
|
|
void __init prom_init_env(void) |
|
{ |
|
/* pmon passes arguments in 32bit pointers */ |
|
unsigned int processor_id; |
|
|
|
cpu_clock_freq = fw_getenvl("cpuclock"); |
|
memsize = fw_getenvl("memsize"); |
|
highmemsize = fw_getenvl("highmemsize"); |
|
|
|
if (memsize == 0) |
|
memsize = 256; |
|
|
|
pr_info("memsize=%u, highmemsize=%u\n", memsize, highmemsize); |
|
|
|
if (cpu_clock_freq == 0) { |
|
processor_id = (¤t_cpu_data)->processor_id; |
|
switch (processor_id & PRID_REV_MASK) { |
|
case PRID_REV_LOONGSON2E: |
|
cpu_clock_freq = 533080000; |
|
break; |
|
case PRID_REV_LOONGSON2F: |
|
cpu_clock_freq = 797000000; |
|
break; |
|
default: |
|
cpu_clock_freq = 100000000; |
|
break; |
|
} |
|
} |
|
pr_info("CpuClock = %u\n", cpu_clock_freq); |
|
}
|
|
|