uboot/arch/powerpc/include/asm/ppc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Ugly header containing required header files. This could  be adjusted
   4 * so that including asm/arch/hardware includes the correct file.
   5 *
   6 * (C) Copyright 2000-2009
   7 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   8 */
   9
  10#ifndef __ASM_PPC_H
  11#define __ASM_PPC_H
  12
  13#ifndef __ASSEMBLY__
  14
  15#if defined(CONFIG_MPC8xx)
  16#include <asm/immap_8xx.h>
  17#endif
  18#ifdef CONFIG_MPC85xx
  19#include <mpc85xx.h>
  20#include <asm/immap_85xx.h>
  21#endif
  22#ifdef CONFIG_MPC83xx
  23#include <mpc83xx.h>
  24#include <asm/immap_83xx.h>
  25#endif
  26#ifdef CONFIG_SOC_DA8XX
  27#include <asm/arch/hardware.h>
  28#endif
  29#ifdef CONFIG_FSL_LSCH3
  30#include <asm/arch/immap_lsch3.h>
  31#endif
  32#ifdef CONFIG_FSL_LSCH2
  33#include <asm/arch/immap_lsch2.h>
  34#endif
  35
  36#include <asm/processor.h>
  37
  38static inline uint get_immr(void)
  39{
  40        return mfspr(SPRN_IMMR);
  41}
  42
  43static inline uint get_pvr(void)
  44{
  45        return mfspr(PVR);
  46}
  47
  48static inline uint get_svr(void)
  49{
  50        return mfspr(SVR);
  51}
  52
  53#if defined(CONFIG_MPC85xx)     || \
  54        defined(CONFIG_MPC86xx) || \
  55        defined(CONFIG_MPC83xx)
  56unsigned char   in8(unsigned int);
  57void            out8(unsigned int, unsigned char);
  58unsigned short  in16(unsigned int);
  59unsigned short  in16r(unsigned int);
  60void            out16(unsigned int, unsigned short value);
  61void            out16r(unsigned int, unsigned short value);
  62unsigned long   in32(unsigned int);
  63unsigned long   in32r(unsigned int);
  64void            out32(unsigned int, unsigned long value);
  65void            out32r(unsigned int, unsigned long value);
  66void            ppcDcbf(unsigned long value);
  67void            ppcDcbi(unsigned long value);
  68void            ppcSync(void);
  69void            ppcDcbz(unsigned long value);
  70#endif
  71#if defined(CONFIG_MPC83xx)
  72void            ppcDWload(unsigned int *addr, unsigned int *ret);
  73void            ppcDWstore(unsigned int *addr, unsigned int *value);
  74void disable_addr_trans(void);
  75void enable_addr_trans(void);
  76#if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
  77void ddr_enable_ecc(unsigned int dram_size);
  78#endif
  79#endif
  80
  81#if defined(CONFIG_MPC85xx)
  82typedef MPC85xx_SYS_INFO sys_info_t;
  83void get_sys_info(sys_info_t *);
  84void ft_fixup_cpu(void *, u64);
  85void ft_fixup_num_cores(void *);
  86#endif
  87#if defined(CONFIG_MPC86xx)
  88ulong get_bus_freq(ulong);
  89typedef MPC86xx_SYS_INFO sys_info_t;
  90void   get_sys_info(sys_info_t *);
  91static inline ulong get_ddr_freq(ulong dummy)
  92{
  93        return get_bus_freq(dummy);
  94}
  95#else
  96ulong get_ddr_freq(ulong);
  97#endif
  98
  99static inline unsigned long get_msr(void)
 100{
 101        unsigned long msr;
 102
 103        asm volatile ("mfmsr %0" : "=r" (msr) : );
 104
 105        return msr;
 106}
 107
 108static inline void set_msr(unsigned long msr)
 109{
 110        asm volatile ("mtmsr %0" : : "r" (msr));
 111}
 112
 113#ifdef CONFIG_CMD_REGINFO
 114void print_reginfo(void);
 115#endif
 116
 117void interrupt_init_cpu(unsigned *);
 118void timer_interrupt_cpu(struct pt_regs *);
 119unsigned long search_exception_table(unsigned long addr);
 120void upmconfig(uint upm, uint *table, uint size);
 121
 122#endif /* !__ASSEMBLY__ */
 123
 124#ifdef CONFIG_PPC
 125/*
 126 * Has to be included outside of the #ifndef __ASSEMBLY__ section.
 127 * Otherwise might lead to compilation errors in assembler files.
 128 */
 129#include <asm/cache.h>
 130#endif
 131
 132#endif
 133