Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 6195
b: refs/heads/master
c: c59c464
h: refs/heads/master
i:
  6193: e64913e
  6191: b1f45ec
v: v3
  • Loading branch information
David Gibson authored and Paul Mackerras committed Aug 29, 2005
1 parent 80233a2 commit 88b5519
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ec465515eeb662f66725c8c483a46b6bdd9bdd48
refs/heads/master: c59c464a3e29830bcfae5eea1777cad9e00087f3
32 changes: 17 additions & 15 deletions trunk/arch/ppc64/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@
* We layout physical memory as follows:
* 0x0000 - 0x00ff : Secondary processor spin code
* 0x0100 - 0x2fff : pSeries Interrupt prologs
* 0x3000 - 0x6fff : interrupt support, iSeries and common interrupt prologs
* 0x3000 - 0x5fff : interrupt support, iSeries and common interrupt prologs
* 0x6000 - 0x6fff : Initial (CPU0) segment table
* 0x7000 - 0x7fff : FWNMI data area
* 0x9000 - 0x9fff : Initial segment table
* 0x8000 - : Early init and support code
*/

/*
Expand Down Expand Up @@ -1256,6 +1257,20 @@ unrecov_slb:
bl .unrecoverable_exception
b 1b

/*
* Space for CPU0's segment table.
*
* On iSeries, the hypervisor must fill in at least one entry before
* we get control (with relocate on). The address is give to the hv
* as a page number (see xLparMap in LparData.c), so this must be at a
* fixed address (the linker can't compute (u64)&initial_stab >>
* PAGE_SHIFT).
*/
. = STAB0_PHYS_ADDR /* 0x6000 */
.globl initial_stab
initial_stab:
.space 4096

/*
* Data area reserved for FWNMI option.
* This address (0x7000) is fixed by the RPA.
Expand All @@ -1265,19 +1280,6 @@ unrecov_slb:
fwnmi_data_area:
.space PAGE_SIZE

/*
* Space for the initial segment table
* For LPAR, the hypervisor must fill in at least one entry
* before we get control (with relocate on)
*/
. = STAB0_PHYS_ADDR
.globl __start_stab
__start_stab:

. = (STAB0_PHYS_ADDR + PAGE_SIZE)
.globl __end_stab
__end_stab:

/*
* On pSeries, secondary processors spin in the following code.
* At entry, r3 = this processor's number (physical cpu id)
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/ppc64/kernel/pacaData.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ extern unsigned long __toc_start;

#define BOOTCPU_PACA_INIT(number) \
{ \
PACA_INIT_COMMON(number, 1, 0, STAB0_VIRT_ADDR) \
PACA_INIT_COMMON(number, 1, 0, (u64)&initial_stab) \
PACA_INIT_ISERIES(number) \
}

Expand All @@ -90,7 +90,7 @@ extern unsigned long __toc_start;

#define BOOTCPU_PACA_INIT(number) \
{ \
PACA_INIT_COMMON(number, 1, STAB0_PHYS_ADDR, STAB0_VIRT_ADDR) \
PACA_INIT_COMMON(number, 1, STAB0_PHYS_ADDR, (u64)&initial_stab) \
}
#endif

Expand Down
7 changes: 5 additions & 2 deletions trunk/include/asm-ppc64/mmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,12 @@
#define STE_VSID_SHIFT 12

/* Location of cpu0's segment table */
#define STAB0_PAGE 0x9
#define STAB0_PAGE 0x6
#define STAB0_PHYS_ADDR (STAB0_PAGE<<PAGE_SHIFT)
#define STAB0_VIRT_ADDR (KERNELBASE+STAB0_PHYS_ADDR)

#ifndef __ASSEMBLY__
extern char initial_stab[];
#endif /* ! __ASSEMBLY */

/*
* SLB
Expand Down

0 comments on commit 88b5519

Please sign in to comment.