162306a36Sopenharmony_ci/***************************************************************************/ 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci/* 462306a36Sopenharmony_ci * m68328.c - 68328/68EZ328/68VZ328 specific config 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 1993 Hamish Macdonald 762306a36Sopenharmony_ci * Copyright (C) 1999 D. Jeff Dionne 862306a36Sopenharmony_ci * Copyright (C) 2001 Georges Menie, Ken Desmet 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 1162306a36Sopenharmony_ci * License. See the file COPYING in the main directory of this archive 1262306a36Sopenharmony_ci * for more details. 1362306a36Sopenharmony_ci * 1462306a36Sopenharmony_ci * VZ Support/Fixes Evan Stawnyczy <e@lineo.ca> 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/***************************************************************************/ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#include <linux/init.h> 2062306a36Sopenharmony_ci#include <linux/types.h> 2162306a36Sopenharmony_ci#include <linux/kernel.h> 2262306a36Sopenharmony_ci#include <linux/rtc.h> 2362306a36Sopenharmony_ci#include <asm/machdep.h> 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#if defined(CONFIG_INIT_LCD) && defined(CONFIG_M68VZ328) 2662306a36Sopenharmony_ci#include "bootlogo-vz.h" 2762306a36Sopenharmony_ci#elif defined(CONFIG_PILOT) || defined(CONFIG_INIT_LCD) 2862306a36Sopenharmony_ci#include "bootlogo.h" 2962306a36Sopenharmony_ci#endif 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#include "m68328.h" 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/***************************************************************************/ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistatic void m68328_reset(void) 3662306a36Sopenharmony_ci{ 3762306a36Sopenharmony_ci local_irq_disable(); 3862306a36Sopenharmony_ci asm volatile ("moveal #0x10c00000, %a0;\n\t" 3962306a36Sopenharmony_ci "moveb #0, 0xFFFFF300;\n\t" 4062306a36Sopenharmony_ci "moveal 0(%a0), %sp;\n\t" 4162306a36Sopenharmony_ci "moveal 4(%a0), %a0;\n\t" 4262306a36Sopenharmony_ci "jmp (%a0);"); 4362306a36Sopenharmony_ci} 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/***************************************************************************/ 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_civoid __init config_BSP(char *command, int len) 4862306a36Sopenharmony_ci{ 4962306a36Sopenharmony_ci mach_sched_init = hw_timer_init; 5062306a36Sopenharmony_ci mach_hwclk = m68328_hwclk; 5162306a36Sopenharmony_ci mach_reset = m68328_reset; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci#if defined(CONFIG_PILOT) && defined(CONFIG_M68328) 5462306a36Sopenharmony_ci mach_sched_init = NULL; 5562306a36Sopenharmony_ci#elif defined(CONFIG_UCSIMM) 5662306a36Sopenharmony_ci init_ucsimm(command, len); 5762306a36Sopenharmony_ci#elif defined(CONFIG_UCDIMM) 5862306a36Sopenharmony_ci init_ucsimm(command, len); 5962306a36Sopenharmony_ci#elif defined(CONFIG_DRAGEN2) 6062306a36Sopenharmony_ci init_dragen2(command, len); 6162306a36Sopenharmony_ci#endif 6262306a36Sopenharmony_ci} 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci/***************************************************************************/ 65