Skip to content
Snippets Groups Projects
Commit a8222fd5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'microblaze-v5.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze

Pull microblaze updates from Michal Simek:

 - convert license headers to SPDX

 - cleanup header handling and use asm-generic one

 - get rid of earlyprintk residues

 - define barriers and use it in the code

 - get rid of setup_irq() for timer

 - various small addons and fixes

* tag 'microblaze-v5.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Replace setup_irq() by request_irq()
  microblaze: Stop printing the virtual memory layout
  microblaze: Use asm generic cmpxchg.h for !SMP case
  microblaze: Define percpu sestion in linker file
  microblaze: Remove unused boot_cpuid variable
  microblaze: Add missing irqflags.h header
  microblaze: Add sync to tlb operations
  microblaze: Define microblaze barrier
  microblaze: Remove empty headers
  microblaze: Remove early printk setup
  microblaze: Remove architecture tlb.h and use generic one
  microblaze: Convert headers to SPDX license
  microblaze: Fix _reset() function
  microblaze: Kernel parameters should be parsed earlier
parents cad18da0 9fd1a1c9
No related branches found
No related tags found
No related merge requests found
/* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Copyright (C) 2007-2008 Michal Simek <monstr@monstr.eu> * Copyright (C) 2007-2008 Michal Simek <monstr@monstr.eu>
* Copyright (C) 2006 Atmark Techno, Inc. * Copyright (C) 2006 Atmark Techno, Inc.
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/ */
#ifndef _ASM_MICROBLAZE_UNISTD_H #ifndef _ASM_MICROBLAZE_UNISTD_H
#define _ASM_MICROBLAZE_UNISTD_H #define _ASM_MICROBLAZE_UNISTD_H
......
/* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Backtrace support for Microblaze * Backtrace support for Microblaze
* *
* Copyright (C) 2010 Digital Design Corporation * Copyright (C) 2010 Digital Design Corporation
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*/ */
#ifndef __MICROBLAZE_UNWIND_H #ifndef __MICROBLAZE_UNWIND_H
......
...@@ -22,13 +22,8 @@ ...@@ -22,13 +22,8 @@
#define CI(c, p) { ci->c = PVR_##p(pvr); } #define CI(c, p) { ci->c = PVR_##p(pvr); }
#if defined(CONFIG_EARLY_PRINTK) && defined(CONFIG_SERIAL_UARTLITE_CONSOLE)
#define err_printk(x) \ #define err_printk(x) \
early_printk("ERROR: Microblaze " x "-different for PVR and DTS\n"); pr_err("ERROR: Microblaze " x "-different for PVR and DTS\n");
#else
#define err_printk(x) \
pr_info("ERROR: Microblaze " x "-different for PVR and DTS\n");
#endif
void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
{ {
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/compiler.h> #include <linux/compiler.h>
#include <asm/exceptions.h> #include <asm/exceptions.h>
#include <asm/pvr.h> #include <asm/pvr.h>
#include <linux/irqflags.h>
/* /*
* Until we get an assembler that knows about the pvr registers, * Until we get an assembler that knows about the pvr registers,
......
...@@ -958,6 +958,7 @@ ENTRY(_switch_to) ...@@ -958,6 +958,7 @@ ENTRY(_switch_to)
nop nop
ENTRY(_reset) ENTRY(_reset)
VM_OFF
brai 0; /* Jump to reset vector */ brai 0; /* Jump to reset vector */
/* These are compiled and loaded into high memory, then /* These are compiled and loaded into high memory, then
......
...@@ -39,7 +39,7 @@ _tlbia_1: ...@@ -39,7 +39,7 @@ _tlbia_1:
rsubi r11, r12, MICROBLAZE_TLB_SIZE - 1 rsubi r11, r12, MICROBLAZE_TLB_SIZE - 1
bneid r11, _tlbia_1 /* loop for all entries */ bneid r11, _tlbia_1 /* loop for all entries */
addik r12, r12, 1 addik r12, r12, 1
/* sync */ mbar 1 /* sync */
rtsd r15, 8 rtsd r15, 8
nop nop
.size _tlbia, . - _tlbia .size _tlbia, . - _tlbia
...@@ -58,6 +58,7 @@ _tlbie: ...@@ -58,6 +58,7 @@ _tlbie:
blti r12, _tlbie_1 /* Check if found */ blti r12, _tlbie_1 /* Check if found */
mts rtlbhi, r0 /* flush: ensure V is clear */ mts rtlbhi, r0 /* flush: ensure V is clear */
nop nop
mbar 1 /* sync */
_tlbie_1: _tlbie_1:
rtsd r15, 8 rtsd r15, 8
nop nop
......
...@@ -41,7 +41,6 @@ DEFINE_PER_CPU(unsigned int, ENTRY_SP); /* Saved SP on kernel entry */ ...@@ -41,7 +41,6 @@ DEFINE_PER_CPU(unsigned int, ENTRY_SP); /* Saved SP on kernel entry */
DEFINE_PER_CPU(unsigned int, R11_SAVE); /* Temp variable for entry */ DEFINE_PER_CPU(unsigned int, R11_SAVE); /* Temp variable for entry */
DEFINE_PER_CPU(unsigned int, CURRENT_SAVE); /* Saved current pointer */ DEFINE_PER_CPU(unsigned int, CURRENT_SAVE); /* Saved current pointer */
unsigned int boot_cpuid;
/* /*
* Placed cmd_line to .data section because can be initialized from * Placed cmd_line to .data section because can be initialized from
* ASM code. Default position is BSS section which is cleared * ASM code. Default position is BSS section which is cleared
...@@ -54,7 +53,6 @@ void __init setup_arch(char **cmdline_p) ...@@ -54,7 +53,6 @@ void __init setup_arch(char **cmdline_p)
*cmdline_p = boot_command_line; *cmdline_p = boot_command_line;
setup_memory(); setup_memory();
parse_early_param();
console_verbose(); console_verbose();
......
...@@ -161,13 +161,6 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id) ...@@ -161,13 +161,6 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static struct irqaction timer_irqaction = {
.handler = timer_interrupt,
.flags = IRQF_TIMER,
.name = "timer",
.dev_id = &clockevent_xilinx_timer,
};
static __init int xilinx_clockevent_init(void) static __init int xilinx_clockevent_init(void)
{ {
clockevent_xilinx_timer.mult = clockevent_xilinx_timer.mult =
...@@ -309,7 +302,8 @@ static int __init xilinx_timer_init(struct device_node *timer) ...@@ -309,7 +302,8 @@ static int __init xilinx_timer_init(struct device_node *timer)
freq_div_hz = timer_clock_freq / HZ; freq_div_hz = timer_clock_freq / HZ;
ret = setup_irq(irq, &timer_irqaction); ret = request_irq(irq, timer_interrupt, IRQF_TIMER, "timer",
&clockevent_xilinx_timer);
if (ret) { if (ret) {
pr_err("Failed to setup IRQ"); pr_err("Failed to setup IRQ");
return ret; return ret;
......
...@@ -13,6 +13,7 @@ ENTRY(microblaze_start) ...@@ -13,6 +13,7 @@ ENTRY(microblaze_start)
#define RO_EXCEPTION_TABLE_ALIGN 16 #define RO_EXCEPTION_TABLE_ALIGN 16
#include <asm/cache.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm-generic/vmlinux.lds.h> #include <asm-generic/vmlinux.lds.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
...@@ -89,6 +90,8 @@ SECTIONS { ...@@ -89,6 +90,8 @@ SECTIONS {
_KERNEL_SDA_BASE_ = _ssro + (_ssro_size / 2) ; _KERNEL_SDA_BASE_ = _ssro + (_ssro_size / 2) ;
} }
PERCPU_SECTION(L1_CACHE_BYTES)
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_begin = .; __init_begin = .;
......
...@@ -201,18 +201,6 @@ void __init mem_init(void) ...@@ -201,18 +201,6 @@ void __init mem_init(void)
#endif #endif
mem_init_print_info(NULL); mem_init_print_info(NULL);
#ifdef CONFIG_MMU
pr_info("Kernel virtual memory layout:\n");
pr_info(" * 0x%08lx..0x%08lx : fixmap\n", FIXADDR_START, FIXADDR_TOP);
#ifdef CONFIG_HIGHMEM
pr_info(" * 0x%08lx..0x%08lx : highmem PTEs\n",
PKMAP_BASE, PKMAP_ADDR(LAST_PKMAP));
#endif /* CONFIG_HIGHMEM */
pr_info(" * 0x%08lx..0x%08lx : early ioremap\n",
ioremap_bot, ioremap_base);
pr_info(" * 0x%08lx..0x%08lx : vmalloc & ioremap\n",
(unsigned long)VMALLOC_START, VMALLOC_END);
#endif
mem_init_done = 1; mem_init_done = 1;
} }
...@@ -347,6 +335,8 @@ asmlinkage void __init mmu_init(void) ...@@ -347,6 +335,8 @@ asmlinkage void __init mmu_init(void)
* inside 768MB limit */ * inside 768MB limit */
memblock_set_current_limit(memory_start + lowmem_size - 1); memblock_set_current_limit(memory_start + lowmem_size - 1);
parse_early_param();
/* CMA initialization */ /* CMA initialization */
dma_contiguous_reserve(memory_start + lowmem_size - 1); dma_contiguous_reserve(memory_start + lowmem_size - 1);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment