Blame view
arch/hexagon/kernel/setup.c
3.67 KB
e03167b26 Hexagon: Add star... |
1 2 3 |
/* * Arch related setup for Hexagon * |
7c6a5df44 Hexagon: update c... |
4 |
* Copyright (c) 2010-2013, The Linux Foundation. All rights reserved. |
e03167b26 Hexagon: Add star... |
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ #include <linux/init.h> |
cb84c2b40 hexagon: Fix buil... |
22 |
#include <linux/delay.h> |
e03167b26 Hexagon: Add star... |
23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <linux/bootmem.h> #include <linux/mmzone.h> #include <linux/mm.h> #include <linux/seq_file.h> #include <linux/console.h> #include <linux/of_fdt.h> #include <asm/io.h> #include <asm/sections.h> #include <asm/setup.h> #include <asm/processor.h> #include <asm/hexagon_vm.h> #include <asm/vm_mmu.h> #include <asm/time.h> |
e03167b26 Hexagon: Add star... |
36 37 38 39 40 |
char cmd_line[COMMAND_LINE_SIZE]; static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE; int on_simulator; |
7ddc83997 hexagon: delete _... |
41 |
void calibrate_delay(void) |
e03167b26 Hexagon: Add star... |
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
{ loops_per_jiffy = thread_freq_mhz * 1000000 / HZ; } /* * setup_arch - high level architectural setup routine * @cmdline_p: pointer to pointer to command-line arguments */ void __init setup_arch(char **cmdline_p) { char *p = &external_cmdline_buffer; /* * These will eventually be pulled in via either some hypervisor * or devicetree description. Hardwiring for now. */ pcycle_freq_mhz = 600; thread_freq_mhz = 100; sleep_clk_freq = 32000; /* * Set up event bindings to handle exceptions and interrupts. */ __vmsetvec(_K_VM_event_vector); |
8f5a0b9df Hexagon: add supp... |
67 68 |
printk(KERN_INFO "PHYS_OFFSET=0x%08x ", PHYS_OFFSET); |
e03167b26 Hexagon: Add star... |
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
/* * Simulator has a few differences from the hardware. * For now, check uninitialized-but-mapped memory * prior to invoking setup_arch_memory(). */ if (*(int *)((unsigned long)_end + 8) == 0x1f1f1f1f) on_simulator = 1; else on_simulator = 0; if (p[0] != '\0') strlcpy(boot_command_line, p, COMMAND_LINE_SIZE); else strlcpy(boot_command_line, default_command_line, COMMAND_LINE_SIZE); /* * boot_command_line and the value set up by setup_arch * are both picked up by the init code. If no reason to * make them different, pass the same pointer back. */ strlcpy(cmd_line, boot_command_line, COMMAND_LINE_SIZE); *cmdline_p = cmd_line; parse_early_param(); setup_arch_memory(); #ifdef CONFIG_SMP smp_start_cpus(); #endif } /* * Functions for dumping CPU info via /proc * Probably should move to kernel/proc.c or something. */ static void *c_start(struct seq_file *m, loff_t *pos) { return *pos < nr_cpu_ids ? (void *)((unsigned long) *pos + 1) : NULL; } static void *c_next(struct seq_file *m, void *v, loff_t *pos) { ++*pos; return c_start(m, pos); } static void c_stop(struct seq_file *m, void *v) { } /* * Eventually this will dump information about * CPU properties like ISA level, TLB size, etc. */ static int show_cpuinfo(struct seq_file *m, void *v) { int cpu = (unsigned long) v - 1; |
2b3c744c3 Hexagon: don't pr... |
128 129 130 131 |
#ifdef CONFIG_SMP if (!cpu_online(cpu)) return 0; #endif |
e03167b26 Hexagon: Add star... |
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
seq_printf(m, "processor\t: %d ", cpu); seq_printf(m, "model name\t: Hexagon Virtual Machine "); seq_printf(m, "BogoMips\t: %lu.%02lu ", (loops_per_jiffy * HZ) / 500000, ((loops_per_jiffy * HZ) / 5000) % 100); seq_printf(m, " "); return 0; } const struct seq_operations cpuinfo_op = { .start = &c_start, .next = &c_next, .stop = &c_stop, .show = &show_cpuinfo, }; |