kernel-fxtec-pro1x/arch/powerpc/include/asm
Trent Piepho b389889535 powerpc: Better setup of boot page TLB entry
The initial TLB mapping for the kernel boot didn't set the memory coherent
attribute, MAS2[M], in SMP mode.

If this code supported booting a secondary processor, which it doesn't yet,
but if it did, then when a secondary processor boots, it would probably signal
the primary processor by setting a variable called something like
__secondary_hold_acknowledge.  However, due to the lack of the M bit, the
primary processor would not snoop the transaction (even if a transaction were
broadcast).  If primary CPU's L1 D-cache had a copy, it would not be flushed
and the CPU would never see the ack.  Which would have resulted in the primary
CPU spinning for a long time, perhaps a full second before it gives up, while
it would have waited for the ack from the secondary CPU that it wouldn't have
been able to see because of the stale cache.

The value of MAS2 for the boot page TLB1 entry is a compile time constant,
so there is no need to calculate it in powerpc assembly language.

Also, from the MPC8572 manual section 6.12.5.3, "Bits that represent
offsets within a page are ignored and should be cleared." Existing code
didn't clear them, this code does.

The same when the page of KERNELBASE is found; we don't need to use asm to
mask the lower 12 bits off.

In the code that computes the address to rfi from, don't hard code the
offset to 24 bytes, but have the assembler figure that out for us.

Signed-off-by: Trent Piepho <tpiepho@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-12-03 08:19:18 -06:00
..
iseries
8xx_immap.h
8253pit.h
abs_addr.h
agp.h
asm-compat.h
atomic.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
auxvec.h
backlight.h
bitops.h
bootx.h
btext.h
bug.h
bugs.h
byteorder.h powerpc: Use the new byteorder headers 2008-11-06 10:23:55 +11:00
cache.h
cacheflush.h
cell-pmu.h
cell-regs.h
checksum.h
clk_interface.h
code-patching.h
compat.h
cpm.h
cpm1.h
cpm2.h fs_enet: Fix SCC Ethernet on CPM2, and crash in fs_enet_rx_napi() 2008-08-27 05:16:38 -04:00
cputable.h powerpc: Add new CPU feature: CPU_FTR_UNALIGNED_LD_STD 2008-11-05 22:08:28 +11:00
cputhreads.h
cputime.h
current.h
dbdma.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h ibm_newemac: Fix EMAC soft reset on 460EX/GT 2008-10-08 15:27:14 -07:00
dcr.h
delay.h
device.h powerpc and sparc: Introduce dev_archdata node accessors 2008-12-03 21:03:54 +11:00
div64.h
dma-mapping.h powerpc: Add sync_*_for_* to dma_ops 2008-12-03 20:46:36 +11:00
dma.h
edac.h
eeh.h powerpc/pci: Split pcibios_fixup_bus() into bus setup and device setup 2008-11-06 09:22:37 +11:00
eeh_event.h
elf.h [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY 2008-10-16 15:40:05 +02:00
emergency-restart.h
errno.h
exception.h powerpc: Make it possible to move the interrupt handlers away from the kernel 2008-09-15 11:08:08 -07:00
fb.h
fcntl.h
feature-fixups.h
firmware.h
fixmap.h
floppy.h
fs_pd.h
fsl_gtm.h
fsl_lbc.h powerpc: fix fsl_upm nand driver modular build 2008-10-13 11:48:24 -05:00
ftrace.h ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
futex.h
gpio.h
grackle.h
hardirq.h
heathrow.h
highmem.h powerpc: Add a local_flush_tlb_page to handle kmap_atomic invalidates 2008-12-03 20:46:35 +11:00
hugetlb.h
hvcall.h powerpc: Make CMO paging space pool ID and page size available 2008-08-18 14:22:34 +10:00
hvconsole.h
hvcserver.h
hw_irq.h
hydra.h
i8259.h
ibmebus.h
ide.h cleanup powerpc/include/asm/ide.h 2008-08-18 21:40:03 +02:00
immap_86xx.h
immap_cpm2.h powerpc: Update QE/CPM2 usb_ctlr structures for USB support 2008-11-08 12:39:02 -06:00
immap_qe.h powerpc: Update QE/CPM2 usb_ctlr structures for USB support 2008-11-08 12:39:02 -06:00
io-defs.h
io.h POWERPC: Allow 32-bit hashed pgtable code to support 36-bit physical 2008-09-24 16:29:44 -05:00
ioctl.h
ioctls.h
iommu.h powerpc: Update remaining dma_mapping_ops to use map/unmap_page 2008-10-31 16:13:48 +11:00
ipcbuf.h
ipic.h
irq.h powerpc: Separate the irq radix tree insertion and lookup 2008-09-15 11:08:44 -07:00
irq_regs.h
irqflags.h powerpc: Fix lockdep IRQ tracing bug 2008-08-18 14:22:34 +10:00
Kbuild
kdebug.h
kdump.h powerpc: Use is_kdump_kernel() 2008-10-31 16:11:47 +11:00
kexec.h kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kvm.h
kvm_asm.h
kvm_host.h KVM: powerpc: Map guest userspace with TID=0 mappings 2008-10-15 10:15:16 +02:00
kvm_para.h
kvm_ppc.h KVM: ppc: stop leaking host memory on VM exit 2008-11-25 12:02:48 +02:00
libata-portmap.h
linkage.h
lmb.h
local.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
lppaca.h powerpc: Update page-in counter for CMM 2008-11-05 22:08:28 +11:00
lv1call.h
machdep.h powerpc: Merge 32 and 64-bit dma code 2008-09-24 16:26:45 -05:00
macio.h
mc146818rtc.h
mediabay.h
mman.h powerpc: Get USE_STRICT_MM_TYPECHECKS working again 2008-10-14 10:35:27 +11:00
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-fsl-booke.h powerpc: Better setup of boot page TLB entry 2008-12-03 08:19:18 -06:00
mmu-hash32.h
mmu-hash64.h powerpc set_huge_psize() false positive 2008-11-30 10:03:35 -08:00
mmu.h
mmu_context.h powerpc: Fix ppc32 mm_struct CPU tracking in SMP 2008-12-03 20:46:35 +11:00
mmzone.h
module.h
mpc6xx.h
mpc8xx.h
mpc52xx.h
mpc52xx_psc.h
mpc86xx.h
mpc512x.h
mpc8260.h
mpic.h powerpc/mpic: Fix regression caused by change of default IRQ affinity 2008-10-31 16:13:50 +11:00
msgbuf.h
msi_bitmap.h powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
mutex.h powerpc: Optimise mutex 2008-11-19 16:04:58 +11:00
nvram.h
of_device.h powerpc: Remove include of linux/of_device.h from asm/of_device.h 2008-08-20 16:34:59 +10:00
of_platform.h powerpc: Remove include of linux/of_platform.h from asm/of_platform.h 2008-08-20 16:34:58 +10:00
ohare.h
oprofile_impl.h
paca.h powerpc: Make it possible to move the interrupt handlers away from the kernel 2008-09-15 11:08:08 -07:00
page.h Merge commit 'origin' into master 2008-10-21 15:52:04 +11:00
page_32.h POWERPC: Allow 32-bit hashed pgtable code to support 36-bit physical 2008-09-24 16:29:44 -05:00
page_64.h
param.h
parport.h
pasemi_dma.h
pci-bridge.h powerpc/pci: Fix various pseries PCI hotplug issues 2008-11-06 09:31:52 +11:00
pci.h powerpc/pci: Fix various pseries PCI hotplug issues 2008-11-06 09:31:52 +11:00
percpu.h
pgalloc-32.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgalloc-64.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgalloc.h powerpc: Use RCU based pte freeing mechanism for all powerpc 2008-12-03 20:46:35 +11:00
pgtable-4k.h
pgtable-64k.h
pgtable-ppc32.h powerpc: Get USE_STRICT_MM_TYPECHECKS working again 2008-10-14 10:35:27 +11:00
pgtable-ppc64.h powerpc: Get USE_STRICT_MM_TYPECHECKS working again 2008-10-14 10:35:27 +11:00
pgtable.h
phyp_dump.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
poll.h
posix_types.h
ppc-pci.h
ppc4xx.h
ppc_asm.h powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
processor.h powerpc: Add SPE/EFP math emulation for E500v1/v2 processors. 2008-12-03 08:19:16 -06:00
prom.h
ps3.h powerpc/ps3: Replace the flip_ctl logic in ps3av and ps3fb by a mutex 2008-11-19 16:03:54 +11:00
ps3av.h powerpc/ps3: Replace the flip_ctl logic in ps3av and ps3fb by a mutex 2008-11-19 16:03:54 +11:00
ps3fb.h
ps3stor.h
pSeries_reconfig.h
ptrace.h remove __ARCH_WANT_COMPAT_SYS_PTRACE 2008-11-30 11:00:15 -08:00
qe.h
qe_ic.h
reg.h
reg_8xx.h
reg_booke.h powerpc: Introduce local (non-broadcast) forms of tlb invalidates 2008-09-24 16:29:40 -05:00
reg_fsl_emb.h
resource.h
rheap.h
rio.h
rtas.h
rtc.h
rwsem.h
scatterlist.h
seccomp.h
sections.h Merge commit 'origin' 2008-10-15 11:31:54 +11:00
sembuf.h
serial.h
setjmp.h
setup.h
sfp-machine.h powerpc: Add SPE/EFP math emulation for E500v1/v2 processors. 2008-12-03 08:19:16 -06:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h signals: demultiplexing SIGTRAP signal 2008-09-23 13:26:52 +02:00
signal.h x86, um: get rid of uml signal.h 2008-10-22 22:55:20 -07:00
smp.h powerpc: Provide a separate handler for each IPI action 2008-11-19 16:05:06 +11:00
smu.h
socket.h
sockios.h
sparsemem.h
spinlock.h powerpc: Tell gcc when we clobber the carry in inline asm 2008-11-19 16:04:28 +11:00
spinlock_types.h
spu.h
spu_csa.h
spu_info.h
spu_priv1.h
sstep.h
stat.h
statfs.h PowerPC: Use <asm-generic/statfs.h> 2008-09-06 19:30:15 +01:00
string.h
suspend.h
synch.h powerpc: Optimise smp_wmb 2008-11-19 16:04:55 +11:00
syscall.h
syscalls.h
systbl.h powerpc: Use sys_pause for 32-bit pause entry point 2008-09-15 11:08:39 -07:00
system.h powerpc: Optimise smp_rmb 2008-11-19 16:04:57 +11:00
tce.h
termbits.h
termios.h
thread_info.h
time.h powerpc: Eliminate unused do_gtod variable 2008-11-06 09:49:28 +11:00
timex.h
tlb.h
tlbflush.h powerpc: Add a local_flush_tlb_page to handle kmap_atomic invalidates 2008-12-03 20:46:35 +11:00
topology.h
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-16 15:17:40 -07:00
uaccess.h
ucc.h
ucc_fast.h
ucc_slow.h
ucontext.h
udbg.h
uic.h
unaligned.h
uninorth.h
unistd.h
user.h
vdso.h
vdso_datapage.h powerpc: Improve resolution of VDSO clock_gettime 2008-11-06 09:49:22 +11:00
vga.h
vio.h
xilinx_intc.h
xmon.h
xor.h