Changeset 1b20da0 in mainline for kernel/arch/sparc64/include
- Timestamp:
- 2018-02-28T17:52:03Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3061bc1
- Parents:
- df6ded8
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:26:03)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:52:03)
- Location:
- kernel/arch/sparc64/include/arch
- Files:
-
- 40 edited
-
console.h (modified) (1 diff)
-
context_struct.ag (modified) (1 diff)
-
cpu.h (modified) (1 diff)
-
cpu_family.h (modified) (3 diffs)
-
cpu_node.h (modified) (1 diff)
-
drivers/fb.h (modified) (1 diff)
-
drivers/niagara.h (modified) (1 diff)
-
drivers/pci.h (modified) (1 diff)
-
fpu_context.h (modified) (1 diff)
-
interrupt.h (modified) (1 diff)
-
istate_struct.ag (modified) (1 diff)
-
mm/asid.h (modified) (1 diff)
-
mm/mmu.h (modified) (1 diff)
-
mm/page.h (modified) (1 diff)
-
mm/pagesize.h (modified) (1 diff)
-
mm/sun4u/mmu.h (modified) (4 diffs)
-
mm/sun4u/tlb.h (modified) (11 diffs)
-
mm/sun4u/tsb.h (modified) (1 diff)
-
mm/sun4u/tte.h (modified) (1 diff)
-
mm/sun4v/as.h (modified) (2 diffs)
-
mm/sun4v/page.h (modified) (1 diff)
-
mm/tsb.h (modified) (1 diff)
-
mm/tte.h (modified) (1 diff)
-
regdef.h (modified) (2 diffs)
-
register.h (modified) (2 diffs)
-
smp/sun4u/ipi.h (modified) (1 diff)
-
smp/sun4v/smp.h (modified) (1 diff)
-
stack.h (modified) (1 diff)
-
sun4u/arch.h (modified) (1 diff)
-
sun4v/arch.h (modified) (2 diffs)
-
sun4v/ipi.h (modified) (1 diff)
-
sun4v/register.h (modified) (1 diff)
-
trap/interrupt.h (modified) (1 diff)
-
trap/regwin.h (modified) (1 diff)
-
trap/sun4u/interrupt.h (modified) (1 diff)
-
trap/sun4u/mmu.h (modified) (3 diffs)
-
trap/sun4u/regwin.h (modified) (1 diff)
-
trap/sun4v/interrupt.h (modified) (1 diff)
-
trap/sun4v/mmu.h (modified) (2 diffs)
-
trap/sun4v/regwin.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/arch/console.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/context_struct.ag
rdf6ded8 r1b20da0 1 # Copyright (c) 2014 Jakub Jermar 1 # Copyright (c) 2014 Jakub Jermar 2 2 # All rights reserved. 3 3 # -
kernel/arch/sparc64/include/arch/cpu.h
rdf6ded8 r1b20da0 65 65 66 66 67 #endif 67 #endif 68 68 69 69 #endif -
kernel/arch/sparc64/include/arch/cpu_family.h
rdf6ded8 r1b20da0 43 43 /** 44 44 * Find the processor (sub)family. 45 * 45 * 46 46 * @return true iff the CPU belongs to the US family 47 47 */ … … 55 55 /** 56 56 * Find the processor (sub)family. 57 * 57 * 58 58 * @return true iff the CPU belongs to the US-III subfamily 59 59 */ … … 68 68 /** 69 69 * Find the processor (sub)family. 70 * 70 * 71 71 * @return true iff the CPU belongs to the US-IV subfamily 72 72 */ -
kernel/arch/sparc64/include/arch/cpu_node.h
rdf6ded8 r1b20da0 43 43 * Depending on the machine type (and possibly the OFW version), CPUs can be 44 44 * at "/" or at "/ssm@0,0". 45 */ 45 */ 46 46 static inline ofw_tree_node_t *cpus_parent(void) 47 47 { -
kernel/arch/sparc64/include/arch/drivers/fb.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/drivers/niagara.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/drivers/pci.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/fpu_context.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/interrupt.h
rdf6ded8 r1b20da0 40 40 41 41 #define IVT_ITEMS 512 42 #define IVT_FIRST 0 42 #define IVT_FIRST 0 43 43 44 44 /* This needs to be defined for inter-architecture API portability. */ -
kernel/arch/sparc64/include/arch/istate_struct.ag
rdf6ded8 r1b20da0 1 # Copyright (c) 2014 Jakub Jermar 1 # Copyright (c) 2014 Jakub Jermar 2 2 # All rights reserved. 3 3 # -
kernel/arch/sparc64/include/arch/mm/asid.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/mmu.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/page.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/pagesize.h
rdf6ded8 r1b20da0 28 28 */ 29 29 30 /** @addtogroup sparc64mm 30 /** @addtogroup sparc64mm 31 31 * @{ 32 32 */ -
kernel/arch/sparc64/include/arch/mm/sun4u/mmu.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ … … 43 43 /* I-MMU ASIs. */ 44 44 #define ASI_IMMU 0x50 45 #define ASI_IMMU_TSB_8KB_PTR_REG 0x51 45 #define ASI_IMMU_TSB_8KB_PTR_REG 0x51 46 46 #define ASI_IMMU_TSB_64KB_PTR_REG 0x52 47 47 #define ASI_ITLB_DATA_IN_REG 0x54 … … 63 63 /* D-MMU ASIs. */ 64 64 #define ASI_DMMU 0x58 65 #define ASI_DMMU_TSB_8KB_PTR_REG 0x59 65 #define ASI_DMMU_TSB_8KB_PTR_REG 0x59 66 66 #define ASI_DMMU_TSB_64KB_PTR_REG 0x5a 67 67 #define ASI_DMMU_TSB_DIRECT_PTR_REG 0x5b … … 106 106 unsigned vw : 1; 107 107 unsigned : 1; 108 unsigned fm : 16; 108 unsigned fm : 16; 109 109 unsigned dm : 1; /**< D-MMU enable. */ 110 110 unsigned im : 1; /**< I-MMU enable. */ -
kernel/arch/sparc64/include/arch/mm/sun4u/tlb.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ … … 143 143 * behind this is to prevent careless mistakes in the code 144 144 * caused by setting only the entry number and not the TLB 145 * number in the US3 code (when taking the code from US). 145 * number in the US3 code (when taking the code from US). 146 146 */ 147 147 … … 241 241 242 242 /** 243 * Determine the number of entries in the DMMU's small TLB. 243 * Determine the number of entries in the DMMU's small TLB. 244 244 */ 245 245 NO_TRACE static inline uint16_t tlb_dsmall_size(void) … … 249 249 250 250 /** 251 * Determine the number of entries in each DMMU's big TLB. 251 * Determine the number of entries in each DMMU's big TLB. 252 252 */ 253 253 NO_TRACE static inline uint16_t tlb_dbig_size(void) … … 257 257 258 258 /** 259 * Determine the number of entries in the IMMU's small TLB. 259 * Determine the number of entries in the IMMU's small TLB. 260 260 */ 261 261 NO_TRACE static inline uint16_t tlb_ismall_size(void) … … 265 265 266 266 /** 267 * Determine the number of entries in the IMMU's big TLB. 267 * Determine the number of entries in the IMMU's big TLB. 268 268 */ 269 269 NO_TRACE static inline uint16_t tlb_ibig_size(void) … … 449 449 /** Read DMMU TLB Data Access Register. 450 450 * 451 * @param tlb TLB number (one of TLB_DSMALL, TLB_DBIG, TLB_DBIG) 451 * @param tlb TLB number (one of TLB_DSMALL, TLB_DBIG, TLB_DBIG) 452 452 * @param entry TLB Entry index. 453 453 * … … 467 467 /** Write DMMU TLB Data Access Register. 468 468 * 469 * @param tlb TLB number (one of TLB_DSMALL, TLB_DBIG_0, TLB_DBIG_1) 469 * @param tlb TLB number (one of TLB_DSMALL, TLB_DBIG_0, TLB_DBIG_1) 470 470 * @param entry TLB Entry index. 471 471 * @param value Value to be written. … … 485 485 /** Read IMMU TLB Tag Read Register. 486 486 * 487 * @param tlb TLB number (one of TLB_ISMALL or TLB_IBIG) 487 * @param tlb TLB number (one of TLB_ISMALL or TLB_IBIG) 488 488 * @param entry TLB Entry index. 489 489 * … … 646 646 da.vpn = pg.vpn; 647 647 648 /* da.value is the address within the ASI */ 648 /* da.value is the address within the ASI */ 649 649 asi_u64_write(ASI_IMMU_DEMAP, da.value, 0); 650 650 … … 672 672 da.vpn = pg.vpn; 673 673 674 /* da.value is the address within the ASI */ 674 /* da.value is the address within the ASI */ 675 675 asi_u64_write(ASI_DMMU_DEMAP, da.value, 0); 676 676 -
kernel/arch/sparc64/include/arch/mm/sun4u/tsb.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/sun4u/tte.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/sun4v/as.h
rdf6ded8 r1b20da0 28 28 */ 29 29 30 /** @addtogroup sparc64mm 30 /** @addtogroup sparc64mm 31 31 * @{ 32 32 */ … … 54 54 * Even though for sun4v the format of the TSB Tag states that the context 55 55 * field has 16 bits, the T1 CPU still only supports 13-bit contexts and the 56 * three most significant bits are always zero. 56 * three most significant bits are always zero. 57 57 */ 58 58 typedef union tte_tag { -
kernel/arch/sparc64/include/arch/mm/sun4v/page.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/tsb.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/mm/tte.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64mm 29 /** @addtogroup sparc64mm 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/regdef.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ … … 58 58 /* 59 59 * The following definitions concern the UPA_CONFIG register on US and the 60 * FIREPLANE_CONFIG register on US3. 60 * FIREPLANE_CONFIG register on US3. 61 61 */ 62 62 #define ICBUS_CONFIG_MID_SHIFT 17 -
kernel/arch/sparc64/include/arch/register.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ … … 98 98 uint64_t value; 99 99 struct { 100 uint64_t : 47; 100 uint64_t : 47; 101 101 unsigned stick_int : 1; 102 102 unsigned int_level : 15; -
kernel/arch/sparc64/include/arch/smp/sun4u/ipi.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/smp/sun4v/smp.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/stack.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/sun4u/arch.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/sun4v/arch.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ … … 47 47 48 48 /* register where the address of the MMU fault status area will be stored */ 49 #define SCRATCHPAD_MMU_FSA 0x00 49 #define SCRATCHPAD_MMU_FSA 0x00 50 50 51 51 /* register where the CPUID will be stored */ -
kernel/arch/sparc64/include/arch/sun4v/ipi.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/sun4v/register.h
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup sparc64 29 /** @addtogroup sparc64 30 30 * @{ 31 31 */ -
kernel/arch/sparc64/include/arch/trap/interrupt.h
rdf6ded8 r1b20da0 30 30 * @{ 31 31 */ 32 /** 32 /** 33 33 * @file 34 34 * @brief This file contains level N interrupt and inter-processor interrupt -
kernel/arch/sparc64/include/arch/trap/regwin.h
rdf6ded8 r1b20da0 84 84 */ 85 85 .macro SPILL_NORMAL_HANDLER_KERNEL 86 stx %l0, [%sp + STACK_BIAS + L0_OFFSET] 86 stx %l0, [%sp + STACK_BIAS + L0_OFFSET] 87 87 stx %l1, [%sp + STACK_BIAS + L1_OFFSET] 88 88 stx %l2, [%sp + STACK_BIAS + L2_OFFSET] -
kernel/arch/sparc64/include/arch/trap/sun4u/interrupt.h
rdf6ded8 r1b20da0 30 30 * @{ 31 31 */ 32 /** 32 /** 33 33 * @file 34 34 * @brief This file contains interrupt vector trap handler. -
kernel/arch/sparc64/include/arch/trap/sun4u/mmu.h
rdf6ded8 r1b20da0 77 77 mov VA_IMMU_TAG_ACCESS, %g5 78 78 ldxa [%g5] ASI_IMMU, %g5 ! read the faulting Context and VPN 79 PREEMPTIBLE_HANDLER exc_dispatch 79 PREEMPTIBLE_HANDLER exc_dispatch 80 80 .endm 81 81 … … 143 143 mov TT_FAST_DATA_ACCESS_MMU_MISS, %g2 144 144 ldxa [VA_DMMU_TAG_ACCESS] %asi, %g5 ! read the faulting Context and VPN 145 PREEMPTIBLE_HANDLER exc_dispatch 145 PREEMPTIBLE_HANDLER exc_dispatch 146 146 .endm 147 147 … … 163 163 mov VA_DMMU_TAG_ACCESS, %g5 164 164 ldxa [%g5] ASI_DMMU, %g5 ! read the faulting Context and VPN 165 PREEMPTIBLE_HANDLER exc_dispatch 165 PREEMPTIBLE_HANDLER exc_dispatch 166 166 .endm 167 167 -
kernel/arch/sparc64/include/arch/trap/sun4u/regwin.h
rdf6ded8 r1b20da0 42 42 */ 43 43 .macro SPILL_TO_USPACE_WINDOW_BUFFER 44 stx %l0, [%g7 + L0_OFFSET] 44 stx %l0, [%g7 + L0_OFFSET] 45 45 stx %l1, [%g7 + L1_OFFSET] 46 46 stx %l2, [%g7 + L2_OFFSET] -
kernel/arch/sparc64/include/arch/trap/sun4v/interrupt.h
rdf6ded8 r1b20da0 30 30 * @{ 31 31 */ 32 /** 32 /** 33 33 * @file 34 34 * @brief This file contains interrupt vector trap handler. -
kernel/arch/sparc64/include/arch/trap/sun4v/mmu.h
rdf6ded8 r1b20da0 75 75 mov TT_FAST_INSTRUCTION_ACCESS_MMU_MISS, %g2 76 76 clr %g5 ! XXX 77 PREEMPTIBLE_HANDLER exc_dispatch 77 PREEMPTIBLE_HANDLER exc_dispatch 78 78 .endm 79 79 … … 179 179 or %g1, %g3, %g5 180 180 181 PREEMPTIBLE_HANDLER exc_dispatch 181 PREEMPTIBLE_HANDLER exc_dispatch 182 182 .endm 183 183 #endif /* __ASM__ */ -
kernel/arch/sparc64/include/arch/trap/sun4v/regwin.h
rdf6ded8 r1b20da0 48 48 set SCRATCHPAD_WBUF, \tmpreg2 49 49 ldxa [\tmpreg2] ASI_SCRATCHPAD, \tmpreg1 50 stx %l0, [\tmpreg1 + L0_OFFSET] 50 stx %l0, [\tmpreg1 + L0_OFFSET] 51 51 stx %l1, [\tmpreg1 + L1_OFFSET] 52 52 stx %l2, [\tmpreg1 + L2_OFFSET]
Note:
See TracChangeset
for help on using the changeset viewer.
