Merge tag 'highbank-debugll-cleanup' of git://sources.calxeda.com/kernel/linux into next/soc
From Rob Herring: Use common debug_ll_init function and remove the static mapping code from mach-highbank. * tag 'highbank-debugll-cleanup' of git://sources.calxeda.com/kernel/linux: ARM: highbank: use common debug_ll_io_init ARM: implement debug_ll_io_init()
This commit is contained in:
commit
a33ee3e694
7 changed files with 39 additions and 46 deletions
|
@ -40,6 +40,13 @@ extern void iotable_init(struct map_desc *, int);
|
||||||
extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
|
extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
|
||||||
void *caller);
|
void *caller);
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_LL
|
||||||
|
extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
|
||||||
|
extern void debug_ll_io_init(void);
|
||||||
|
#else
|
||||||
|
static inline void debug_ll_io_init(void) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
struct mem_type;
|
struct mem_type;
|
||||||
extern const struct mem_type *get_mem_type(unsigned int type);
|
extern const struct mem_type *get_mem_type(unsigned int type);
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -100,6 +100,13 @@ ENTRY(printch)
|
||||||
b 1b
|
b 1b
|
||||||
ENDPROC(printch)
|
ENDPROC(printch)
|
||||||
|
|
||||||
|
ENTRY(debug_ll_addr)
|
||||||
|
addruart r2, r3, ip
|
||||||
|
str r2, [r0]
|
||||||
|
str r3, [r1]
|
||||||
|
mov pc, lr
|
||||||
|
ENDPROC(debug_ll_addr)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
ENTRY(printascii)
|
ENTRY(printascii)
|
||||||
|
@ -119,4 +126,11 @@ ENTRY(printch)
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
ENDPROC(printch)
|
ENDPROC(printch)
|
||||||
|
|
||||||
|
ENTRY(debug_ll_addr)
|
||||||
|
mov r2, #0
|
||||||
|
str r2, [r0]
|
||||||
|
str r2, [r1]
|
||||||
|
mov pc, lr
|
||||||
|
ENDPROC(debug_ll_addr)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,7 +3,6 @@ obj-y := highbank.o system.o smc.o
|
||||||
plus_sec := $(call as-instr,.arch_extension sec,+sec)
|
plus_sec := $(call as-instr,.arch_extension sec,+sec)
|
||||||
AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec)
|
AFLAGS_smc.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||||
|
|
||||||
obj-$(CONFIG_DEBUG_HIGHBANK_UART) += lluart.o
|
|
||||||
obj-$(CONFIG_SMP) += platsmp.o
|
obj-$(CONFIG_SMP) += platsmp.o
|
||||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
||||||
obj-$(CONFIG_PM_SLEEP) += pm.o
|
obj-$(CONFIG_PM_SLEEP) += pm.o
|
||||||
|
|
|
@ -5,11 +5,6 @@ extern void highbank_set_cpu_jump(int cpu, void *jump_addr);
|
||||||
extern void highbank_clocks_init(void);
|
extern void highbank_clocks_init(void);
|
||||||
extern void highbank_restart(char, const char *);
|
extern void highbank_restart(char, const char *);
|
||||||
extern void __iomem *scu_base_addr;
|
extern void __iomem *scu_base_addr;
|
||||||
#ifdef CONFIG_DEBUG_HIGHBANK_UART
|
|
||||||
extern void highbank_lluart_map_io(void);
|
|
||||||
#else
|
|
||||||
static inline void highbank_lluart_map_io(void) {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
extern void highbank_pm_init(void);
|
extern void highbank_pm_init(void);
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include <asm/hardware/gic.h>
|
#include <asm/hardware/gic.h>
|
||||||
#include <asm/hardware/cache-l2x0.h>
|
#include <asm/hardware/cache-l2x0.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/mach/map.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
|
@ -53,11 +54,6 @@ static void __init highbank_scu_map_io(void)
|
||||||
scu_base_addr = ioremap(base, SZ_4K);
|
scu_base_addr = ioremap(base, SZ_4K);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init highbank_map_io(void)
|
|
||||||
{
|
|
||||||
highbank_lluart_map_io();
|
|
||||||
}
|
|
||||||
|
|
||||||
#define HB_JUMP_TABLE_PHYS(cpu) (0x40 + (0x10 * (cpu)))
|
#define HB_JUMP_TABLE_PHYS(cpu) (0x40 + (0x10 * (cpu)))
|
||||||
#define HB_JUMP_TABLE_VIRT(cpu) phys_to_virt(HB_JUMP_TABLE_PHYS(cpu))
|
#define HB_JUMP_TABLE_VIRT(cpu) phys_to_virt(HB_JUMP_TABLE_PHYS(cpu))
|
||||||
|
|
||||||
|
@ -211,7 +207,7 @@ static const char *highbank_match[] __initconst = {
|
||||||
|
|
||||||
DT_MACHINE_START(HIGHBANK, "Highbank")
|
DT_MACHINE_START(HIGHBANK, "Highbank")
|
||||||
.smp = smp_ops(highbank_smp_ops),
|
.smp = smp_ops(highbank_smp_ops),
|
||||||
.map_io = highbank_map_io,
|
.map_io = debug_ll_io_init,
|
||||||
.init_irq = highbank_init_irq,
|
.init_irq = highbank_init_irq,
|
||||||
.timer = &highbank_timer,
|
.timer = &highbank_timer,
|
||||||
.handle_irq = gic_handle_irq,
|
.handle_irq = gic_handle_irq,
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2011 Calxeda, Inc.
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms and conditions of the GNU General Public License,
|
|
||||||
* version 2, as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <asm/page.h>
|
|
||||||
#include <asm/sizes.h>
|
|
||||||
#include <asm/mach/map.h>
|
|
||||||
|
|
||||||
#define HB_DEBUG_LL_PHYS_BASE 0xfff36000
|
|
||||||
#define HB_DEBUG_LL_VIRT_BASE 0xfee36000
|
|
||||||
|
|
||||||
static struct map_desc lluart_io_desc __initdata = {
|
|
||||||
.virtual = HB_DEBUG_LL_VIRT_BASE,
|
|
||||||
.pfn = __phys_to_pfn(HB_DEBUG_LL_PHYS_BASE),
|
|
||||||
.length = SZ_4K,
|
|
||||||
.type = MT_DEVICE,
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init highbank_lluart_map_io(void)
|
|
||||||
{
|
|
||||||
iotable_init(&lluart_io_desc, 1);
|
|
||||||
}
|
|
|
@ -876,6 +876,22 @@ static void __init pci_reserve_io(void)
|
||||||
#define pci_reserve_io() do { } while (0)
|
#define pci_reserve_io() do { } while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_DEBUG_LL
|
||||||
|
void __init debug_ll_io_init(void)
|
||||||
|
{
|
||||||
|
struct map_desc map;
|
||||||
|
|
||||||
|
debug_ll_addr(&map.pfn, &map.virtual);
|
||||||
|
if (!map.pfn || !map.virtual)
|
||||||
|
return;
|
||||||
|
map.pfn = __phys_to_pfn(map.pfn);
|
||||||
|
map.virtual &= PAGE_MASK;
|
||||||
|
map.length = PAGE_SIZE;
|
||||||
|
map.type = MT_DEVICE;
|
||||||
|
create_mapping(&map);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void * __initdata vmalloc_min =
|
static void * __initdata vmalloc_min =
|
||||||
(void *)(VMALLOC_END - (240 << 20) - VMALLOC_OFFSET);
|
(void *)(VMALLOC_END - (240 << 20) - VMALLOC_OFFSET);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue