Skip to content
Snippets Groups Projects
Select Git revision
  • a5986432679205df5f80f7699f7853a0e7e5a509
  • master default protected
  • early-display
  • variant-emmc-nvme-boot
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
8 results

processor.h

Blame
  • Forked from Reform / reform-boundary-uboot
    Source project has a limited visibility.
    processor.h 55.26 KiB
    #ifndef __ASM_PPC_PROCESSOR_H
    #define __ASM_PPC_PROCESSOR_H
    
    /*
     * Default implementation of macro that returns current
     * instruction pointer ("program counter").
     */
    #define current_text_addr() ({ __label__ _l; _l: &&_l;})
    
    #include <linux/config.h>
    
    #include <asm/ptrace.h>
    #include <asm/types.h>
    
    /* Machine State Register (MSR) Fields */
    
    #ifdef CONFIG_PPC64BRIDGE
    #define MSR_SF		(1<<63)
    #define MSR_ISF		(1<<61)
    #endif /* CONFIG_PPC64BRIDGE */
    #define MSR_UCLE	(1<<26)		/* User-mode cache lock enable (e500) */
    #define MSR_VEC		(1<<25)		/* Enable AltiVec(74xx) */
    #define MSR_SPE		(1<<25)		/* Enable SPE(e500) */
    #define MSR_POW		(1<<18)		/* Enable Power Management */
    #define MSR_WE		(1<<18)		/* Wait State Enable */
    #define MSR_TGPR	(1<<17)		/* TLB Update registers in use */
    #define MSR_CE		(1<<17)		/* Critical Interrupt Enable */
    #define MSR_ILE		(1<<16)		/* Interrupt Little Endian */
    #define MSR_EE		(1<<15)		/* External Interrupt Enable */
    #define MSR_PR		(1<<14)		/* Problem State / Privilege Level */
    #define MSR_FP		(1<<13)		/* Floating Point enable */
    #define MSR_ME		(1<<12)		/* Machine Check Enable */
    #define MSR_FE0		(1<<11)		/* Floating Exception mode 0 */
    #define MSR_SE		(1<<10)		/* Single Step */
    #define MSR_DWE		(1<<10)		/* Debug Wait Enable (4xx) */
    #define MSR_UBLE	(1<<10)		/* BTB lock enable (e500) */
    #define MSR_BE		(1<<9)		/* Branch Trace */
    #define MSR_DE		(1<<9)		/* Debug Exception Enable */
    #define MSR_FE1		(1<<8)		/* Floating Exception mode 1 */
    #define MSR_IP		(1<<6)		/* Exception prefix 0x000/0xFFF */
    #define MSR_IR		(1<<5)		/* Instruction Relocate */
    #define MSR_IS		(1<<5)		/* Book E Instruction space */
    #define MSR_DR		(1<<4)		/* Data Relocate */
    #define MSR_DS		(1<<4)		/* Book E Data space */
    #define MSR_PE		(1<<3)		/* Protection Enable */
    #define MSR_PX		(1<<2)		/* Protection Exclusive Mode */
    #define MSR_PMM		(1<<2)		/* Performance monitor mark bit (e500) */
    #define MSR_RI		(1<<1)		/* Recoverable Exception */
    #define MSR_LE		(1<<0)		/* Little Endian */
    
    #ifdef CONFIG_APUS_FAST_EXCEPT
    #define MSR_		MSR_ME|MSR_IP|MSR_RI
    #else
    #define MSR_		MSR_ME|MSR_RI
    #endif
    #ifndef CONFIG_E500
    #define MSR_KERNEL	MSR_|MSR_IR|MSR_DR
    #else
    #define MSR_KERNEL	MSR_ME
    #endif
    
    /* Floating Point Status and Control Register (FPSCR) Fields */
    
    #define FPSCR_FX	0x80000000	/* FPU exception summary */
    #define FPSCR_FEX	0x40000000	/* FPU enabled exception summary */
    #define FPSCR_VX	0x20000000	/* Invalid operation summary */
    #define FPSCR_OX	0x10000000	/* Overflow exception summary */
    #define FPSCR_UX	0x08000000	/* Underflow exception summary */
    #define FPSCR_ZX	0x04000000	/* Zero-devide exception summary */
    #define FPSCR_XX	0x02000000	/* Inexact exception summary */