u-boot/include/configs
Andre Przywara 16212b594f ARM: add assembly routine to switch to non-secure state
While actually switching to non-secure state is one thing, another
part of this process is to make sure that we still have full access
to the interrupt controller (GIC).
The GIC is fully aware of secure vs. non-secure state, some
registers are banked, others may be configured to be accessible from
secure state only.
To be as generic as possible, we get the GIC memory mapped address
based on the PERIPHBASE value in the CBAR register. Since this
register is not architecturally defined, we check the MIDR before to
be from an A15 or A7.
For CPUs not having the CBAR or boards with wrong information herein
we allow providing the base address as a configuration variable.

Now that we know the GIC address, we:
a) allow private interrupts to be delivered to the core
   (GICD_IGROUPR0 = 0xFFFFFFFF)
b) enable the CPU interface (GICC_CTLR[0] = 1)
c) set the priority filter to allow non-secure interrupts
   (GICC_PMR = 0xFF)

Also we allow access to all coprocessor interfaces from non-secure
state by writing the appropriate bits in the NSACR register.

The generic timer base frequency register is only accessible from
secure state, so we have to program it now. Actually this should be
done from primary firmware before, but some boards seems to omit
this, so if needed we do this here with a board specific value.
The Versatile Express board does not need this, so we remove the
frequency from the configuration file here.

After having switched to non-secure state, we also enable the
non-secure GIC CPU interface, since this register is banked.

Since we need to call this routine also directly from the smp_pen
later (where we don't have any stack), we can only use caller saved
registers r0-r3 and r12 to not mess with the compiler.

Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
2013-10-03 21:28:25 +02:00
..
km
manroland
a3m071.h
a4m072.h
a320evb.h
A3000.h
ac14xx.h
acadia.h
actux1.h
actux2.h
actux3.h
actux4.h
Adder.h
AdderUSB.h
adp-ag101.h
adp-ag101p.h
adp-ag102.h
ADS860.h
aev.h
afeb9260.h
alpr.h
am43xx_evm.h
am335x_evm.h am335x_evm.h: If mmcdev and bootpart switch to mmcdev 1, so should mmcroot. 2013-09-20 16:57:40 -04:00
am3517_crane.h
am3517_evm.h
amcc-common.h
ap325rxa.h
ap_sh4a_4a.h
APC405.h
apf27.h apf27: add FPGA support for the apf27 board 2013-09-11 09:35:43 +02:00
apx4devkit.h
AR405.h
aria.h
armadillo-800eva.h
arndale.h exynos5250: Add arndale board support 2013-08-30 12:13:58 +09:00
ASH405.h
aspenite.h
astro_mcf5373l.h
at91rm9200ek.h
at91sam9m10g45ek.h arm: atmel: remove the config.mk file 2013-08-22 16:51:15 +02:00
at91sam9n12ek.h
at91sam9rlek.h
at91sam9x5ek.h arm: atmel: remove the config.mk file 2013-08-22 16:51:15 +02:00
at91sam9260ek.h
at91sam9261ek.h
at91sam9263ek.h
atc.h
atngw100.h
atngw100mkii.h
atstk1002.h
atstk1003.h
atstk1004.h
atstk1006.h
B4860QDS.h
balloon3.h
bamboo.h
BC3450.h
bct-brettl2.h
beaver.h
bf506f-ezkit.h
bf518f-ezbrd.h
bf525-ucr2.h
bf526-ezbrd.h
bf527-ad7160-eval.h
bf527-ezkit.h
bf527-sdp.h
bf533-ezkit.h
bf533-stamp.h
bf537-minotaur.h
bf537-pnav.h
bf537-srv1.h
bf537-stamp.h
bf538f-ezkit.h
bf548-ezkit.h
bf561-acvilon.h
bf561-ezkit.h
bf609-ezkit.h
bfin_adi_common.h
blackstamp.h
blackvme.h
bluestone.h
br4.h
BSC9131RDB.h
BSC9132QDS.h
bubinga.h
C29XPCIE.h
calimain.h
cam_enc_4xx.h cam_enc_4xx: Move CONFIG_SPL_PAD_TO to a config header 2013-09-06 13:09:08 -04:00
canmb.h
canyonlands.h
cardhu.h
CATcenter.h
cgtqmx6eval.h
charon.h
cm41xx.h
cm4008.h
cm5200.h
cm_t35.h
cm-bf527.h
cm-bf533.h
cm-bf537e.h
cm-bf537u.h
cm-bf548.h
cm-bf561.h
cmi_mpc5xx.h
CMS700.h
cobra5272.h
cogent_common.h
cogent_mpc8xx.h
cogent_mpc8260.h
colibri_pxa270.h
colibri_t20_iris.h
controlcenterd.h
coreboot.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
corenet_ds.h
CPC45.h
cpci5200.h
CPCI2DP.h
CPCI405.h
CPCI405AB.h
CPCI405DT.h
CPCI750.h
CPCI4052.h
CPCIISER4.h
cpu9260.h
CPU86.h
CPU87.h
cpuat91.h
CRAYL1.h
csb272.h
csb472.h
CU824.h
da830evm.h
da850evm.h
dalmore.h
davinci_dm355evm.h
davinci_dm355leopard.h
davinci_dm365evm.h
davinci_dm6467evm.h
davinci_dvevm.h
davinci_schmoogie.h
davinci_sffsdr.h
davinci_sonata.h
DB64360.h
DB64460.h
dbau1x00.h
debris.h
devkit3250.h
devkit8000.h
dig297.h
digsy_mtc.h
dkb.h
dlvision-10g.h
dlvision.h
dnp5370.h
dns325.h
dockstar.h
DP405.h
dra7xx_evm.h ARM: DRA7: Enable saveenv command 2013-09-20 16:57:40 -04:00
dreamplug.h
DU405.h
DU440.h
dvlhost.h
dxr2.h arm, am335x: add support for 3 siemens boards 2013-08-28 11:44:59 -04:00
ea20.h
eb_cpu5282.h
eb_cpux9k2.h arm: atmel: cpux9k2: increase malloc space to fix crash on start u-boot 2013-09-19 10:26:48 +02:00
ebony.h
eco5pk.h
ecovec.h
edminiv2.h
ELPPC.h
ELPT860.h
enbw_cmc.h
ep82xxm.h
ep8248.h
ep8260.h
EP88x.h
espt.h
ESTEEM192E.h
ethernut5.h
EVB64260.h
eXalion.h
EXBITGEN.h
exynos5250-dt.h Merge branch 'u-boot-samsung/master' into 'u-boot-arm/master' 2013-09-11 09:59:27 +02:00
FADS823.h
FADS850SAR.h
FADS860T.h
favr-32-ezkit.h
FLAGADM.h
flea3.h
FPS850L.h
FPS860L.h
fx12mm.h
G2000.h
galaxy5200.h
gdppc440etx.h
GEN860T.h
GENIETV.h
goflexhome.h
gplugd.h
gr_cpci_ax2000.h
gr_ep2s60.h
gr_xc3s_1500.h
grasshopper.h
grsim_leon2.h
grsim.h
guruplug.h
gw8260.h
h2_p2_dbg_board.h
h2200.h
hammerhead.h
harmony.h
hawkboard.h
hermes.h
HH405.h
HIDDEN_DRAGON.h
highbank.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
hmi1001.h
HUB405.h
HWW1U1A.h
hymod.h
ib62x0.h
ibf-dsp561.h
IceCube.h
icon.h
iconnect.h
ICU862.h
idmr.h
IDS8247.h
igep00x0.h ARM: igep00x0.h: Enable raw initrd support 2013-08-28 11:44:58 -04:00
igep0033.h
ima3-mx53.h
imx27lite-common.h
imx27lite.h
imx31_litekit.h
imx31_phycore.h
incaip.h
inka4x0.h
integrator-common.h
integratorap.h
integratorcp.h
intip.h
io64.h
io.h
iocon.h
ip04.h
IP860.h
ipam390.h
ipek01.h
IPHASE4539.h
ISPAN.h
IVML24.h
IVMS8.h
jadecpu.h
jornada.h
JSE.h
jupiter.h
KAREF.h
katmai.h
kilauea.h
km82xx.h
km8360.h
km_kirkwood.h
korat.h
KUP4K.h
KUP4X.h
kvme080.h
kzm9g.h
lacie_kw.h
linkstation.h
lp8x4x.h
lsxl.h
luan.h
lubbock.h
lwmon5.h ppc4xx: Fix GPIO handling in lwmon5 and lcd4_lwmon5 BSP 2013-09-07 09:48:06 +02:00
lwmon.h
m28evk.h
m53evk.h
M5208EVBE.h
M5235EVB.h
M5249EVB.h
M5253DEMO.h
M5253EVBE.h
M5271EVB.h
M5272C3.h
M5275EVB.h
M5282EVB.h
M5329EVB.h
M5373EVB.h
M5475EVB.h
M5485EVB.h
M52277EVB.h
M53017EVB.h
M54418TWR.h
M54451EVB.h
M54455EVB.h
magnesium.h
makalu.h
MBX860T.h
MBX.h
mcc200.h
mcx.h
mecp5123.h
mecp5200.h
medcom-wide.h
meesc.h
MERGERBOX.h
METROBOX.h
MHPC.h
microblaze-generic.h
MigoR.h
mimc200.h
mini2440.h
MIP405.h
ml507.h
motionpro.h
MOUSSE.h
mpc5121-common.h
mpc5121ads.h
mpc7448hpc2.h
mpc8308_p1m.h
MPC86xADS.h
MPC832XEMDS.h
MPC837XEMDS.h
MPC837XERDB.h
MPC885ADS.h
MPC8260ADS.h
MPC8266ADS.h
MPC8308RDB.h
MPC8313ERDB.h
MPC8315ERDB.h
MPC8323ERDB.h
MPC8349EMDS.h
MPC8349ITX.h
MPC8360EMDS.h
MPC8360ERDK.h
MPC8536DS.h
MPC8540ADS.h
MPC8541CDS.h
MPC8544DS.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
MPC8548CDS.h
MPC8555CDS.h
MPC8560ADS.h
MPC8568MDS.h
MPC8569MDS.h
MPC8572DS.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
MPC8610HPCD.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
MPC8641HPCN.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
mpq101.h
mpr2.h
ms7720se.h
ms7722se.h
ms7750se.h
mt_ventoux.h
muas3001.h
mucmc52.h
munices.h
MUSENKI.h
mv88f6281gtw_ge.h
mv-common.h
MVBC_P.h
MVBLM7.h
MVBLUE.h
MVS1.h
MVSMR.h
mx1ads.h
mx6_common.h
mx6qarm2.h
mx6qsabreauto.h
mx6sabre_common.h
mx6sabresd.h mx6sabresd: Fix the fdt file for the mx6dl version 2013-09-20 17:55:37 +02:00
mx6slevk.h mx6slevk: Add Ethernet support 2013-09-20 17:55:37 +02:00
mx23_olinuxino.h
mx23evk.h
mx25pdk.h
mx28evk.h
mx31ads.h
mx31pdk.h
mx35pdk.h mx35pdk: Remove CONFIG_SYS_CACHELINE_SIZE 2013-09-20 17:55:36 +02:00
mx51_efikamx.h
mx51evk.h
mx53ard.h
mx53evk.h
mx53loco.h
mx53smd.h
mxs.h
neo.h
NETPHONE.h
NETTA2.h
NETTA.h
NETVIA.h
nhk8815.h
nios2-generic.h
nitrogen6x.h
nokia_rx51.h
NSCU.h
NX823.h
o2d300.h
o2d.h
o2dnt2.h
o2dnt-common.h
o2i.h
o2mnt.h
o3dnt.h
ocotea.h
OCRTC.h
omap3_beagle.h
omap3_evm_common.h
omap3_evm_quick_mmc.h
omap3_evm_quick_nand.h
omap3_evm.h
omap3_logic.h
omap3_mvblx.h
omap3_overo.h
omap3_pandora.h
omap3_sdp3430.h
omap3_zoom1.h
omap3_zoom2.h
omap4_common.h
omap4_panda.h
omap4_sdp4430.h sdp4430: Initialize board id using CONFIG_MACH_TYPE 2013-08-28 11:44:58 -04:00
omap5_common.h TI:omap5: Clarify comments about SPL and DDR timings in common config 2013-08-28 11:44:59 -04:00
omap5_uevm.h Merge branch 'u-boot-ti/master' into 'u-boot-arm/master' 2013-09-04 14:06:56 +02:00
omap730.h
omap730p2.h
omap1510.h
omap1510inn.h
omap5912osk.h
openrd.h
openrisc-generic.h
origen.h
ORSG.h
otc570.h
p1_p2_rdb_pc.h
p1_twr.h
p3mx.h
p3p440.h
P1_P2_RDB.h
P3G4.h
P1010RDB.h
P1022DS.h
P1023RDB.h
P1023RDS.h
P2020COME.h
P2020DS.h ahci: convert to use libata functions and definitions 2013-09-06 13:09:07 -04:00
P2041RDB.h
P3041DS.h
P4080DS.h
P5020DS.h
P5040DS.h
palmld.h
palmtc.h
palmtreo680.h
PATI.h
paz00.h
pb1x00.h
PCI405.h
PCI5441.h
pcm030.h
pcm051.h am335x:Handle worst case scenario for Errata 1.0.24 2013-09-20 16:57:40 -04:00
pcs440ep.h
pdm360ng.h
pdnb3.h
pf5200.h
PIP405.h
PK1C20.h
PLU405.h
plutux.h
pm9g45.h
pm9261.h
pm9263.h
PM520.h
PM826.h
PM828.h
PMC405.h
PMC405DE.h
PMC440.h
PN62.h
pogo_e02.h
PPChameleonEVB.h
ppmc7xx.h
ppmc8260.h
pr1.h
pxa255_idp.h
pxa-common.h
pxm2.h arm, am335x: add support for 3 siemens boards 2013-08-28 11:44:59 -04:00
qemu-malta.h
qemu-mips64.h
qemu-mips.h
qong.h
QS823.h
QS850.h
QS860T.h
quad100hd.h
quantum.h
r0p7734.h
r2dplus.h
r7780mp.h
R360MPI.h
Rattler.h
RBC823.h
rd6281a.h
redwood.h
rpi_b.h
RPXClassic.h
RPXlite_DW.h
RPXlite.h
RPXsuper.h
RRvision.h
rsdproto.h
rsk7203.h
rsk7264.h
rsk7269.h
rut.h arm, am335x: add support for 3 siemens boards 2013-08-28 11:44:59 -04:00
s5p_goni.h arm: goni: remove config.mk file 2013-08-28 10:18:54 +09:00
s5pc210_universal.h
sacsng.h
sama5d3xek.h ARM: atmel: sama5d3: drop unused CONFIG_NET_MULTI 2013-09-04 17:07:30 +02:00
sandbox.h sandbox: add compression tests 2013-09-03 13:30:05 -06:00
Sandpoint8240.h
Sandpoint8245.h
sansa_fuze_plus.h ARM: mxs: Add SanDisk Sansa Fuze+ board 2013-09-10 19:12:55 +02:00
sbc35_a9g20.h
sbc405.h
sbc8349.h
sbc8548.h
sbc8641d.h
sc3.h
sc_sps_1.h
scb9328.h
seaboard.h
sequoia.h
sh7752evb.h
sh7757lcr.h
sh7763rdp.h
sh7785lcr.h
sheevaplug.h
shmin.h
siemens-am33x-common.h siemens-am33x-common.h: Always build CONFIG_OMAP_GPIO support 2013-08-28 12:01:30 -04:00
SIMPC8313.h
SM850.h
smdk2410.h
smdk5250.h
smdkc100.h arm: smdkc100: remove config.mk file 2013-08-28 10:18:54 +09:00
smdkv310.h
snapper9260.h
snow.h
snowball.h
socfpga_cyclone5.h socfpga: Adding configuration for development kit 2013-09-06 12:06:24 +02:00
socrates.h
spc1920.h
SPD823TS.h
spear3xx_evb.h
spear6xx_evb.h
spear-common.h
spieval.h
stamp9g20.h
stxgp3.h
stxssa.h
stxxtc.h
suvd3.h
svm_sc8xx.h
SXNI855T.h
t3corp.h
t4qds.h
T4240EMU.h
T4240QDS.h
taihu.h
taishan.h
tam3517-common.h
TASREG.h
tb0229.h
TB5200.h
tcm-bf518.h
tcm-bf537.h
tec.h
tegra20-common.h
tegra30-common.h
tegra114-common.h
tegra-common-post.h
tegra-common.h
ti814x_evm.h
ti816x_evm.h
ti_am335x_common.h TI:am33xx: Move SPL YMODEM support to the per-board config 2013-08-28 11:44:59 -04:00
ti_armv7_common.h TI:armv7: Re-order slightly the generic CONFIG options, expand related comments 2013-08-28 11:44:58 -04:00
titanium.h
tk71.h
TK885D.h
tnetv107x_evm.h
tny_a9260.h
top9000.h
TOP860.h
TOP5200.h
Total5200.h
TQM823L.h
TQM823M.h
TQM834x.h
TQM850L.h
TQM850M.h
TQM855L.h
TQM855M.h
TQM860L.h
TQM860M.h
TQM862L.h
TQM862M.h
TQM866M.h
TQM885D.h
TQM5200.h
TQM8260.h
TQM8272.h
trats.h
tricorder.h
trimslice.h
trizepsiv.h
tt01.h
tuxx1.h
twister.h
tx25.h
u8500_href.h
uc100.h
uc101.h
utx8245.h
v5fx30teval.h
v37.h
v38b.h
VCMA9.h
vct.h
ve8313.h
ventana.h
versatile.h
vexpress_ca5x2.h
vexpress_ca9x4.h
vexpress_ca15_tc2.h ARM: add assembly routine to switch to non-secure state 2013-10-03 21:28:25 +02:00
vexpress_common.h
vf610twr.h
virtlab2.h
vision2.h
vl_ma2sc.h
vme8349.h
VOH405.h
VOM405.h
VoVPN-GW.h
vpac270.h
W7OLMC.h
W7OLMG.h
walnut.h
wandboard.h wandboard: Use imx6dl-wandboard.dtb for the solo version 2013-09-20 17:55:35 +02:00
whistler.h
wireless_space.h
woodburn_common.h
woodburn_sd.h
woodburn.h
WUH405.h
x600.h
xaeniax.h
xfi3.h ARM: mxs: Add Creative ZEN XFi3 board 2013-09-10 19:12:55 +02:00
xilinx-ppc405-generic.h
xilinx-ppc405.h
xilinx-ppc440-generic.h
xilinx-ppc440.h
xilinx-ppc.h
xpedite517x.h
xpedite520x.h
xpedite537x.h
xpedite550x.h
xpedite1000.h
yosemite.h
yucca.h
zeus.h
zipitz2.h
zmx25.h
ZPC1900.h
ZUMA.h
zynq.h