Hi, This series fixes the exception handling on ARM.
First of all, it makes the symbols of the exception vectors relocatable. Then, it ensures that the exception vectors are relocated. To do so, we copy or move the exception vectors depending on the CPU features. In order to handle gracefully CPU features, this commit introduces Kconfig symbols for each ARM processor and it selects through Kconfig the feature HAS_VBAR for the right CPUs. I have taken into account all Masahiro's remarks and I checked this patch with tools/genboardscfg.py. Also, this series configures correctly the IRQ and the FIQ stack pointers. Regards, Georges Changes in v4: - Take into account all Masahiro's remarks for the Kconfig patch - Restore initial CPSR value after configuring SP in IRQ and FIQ modes - Rebase to master Changes in v3: - Use the CPU feature HAS_VBAR Kconfig symbol Changes in v2: - Relocate exception vectors also on processors which do not support security extensions - Reword the commit messages Georges Savoundararadj (4): kconfig: arm: introduce symbol for ARM CPUs arm: make .vectors section allocatable arm: relocate the exception vectors arm: interrupt_init: set sp in IRQ/FIQ modes arch/arm/Kconfig | 212 +++++++++++++++++++++++++++++++ arch/arm/cpu/arm926ejs/davinci/Kconfig | 3 - arch/arm/cpu/arm926ejs/kirkwood/Kconfig | 3 - arch/arm/cpu/arm926ejs/nomadik/Kconfig | 3 - arch/arm/cpu/arm926ejs/orion5x/Kconfig | 3 - arch/arm/cpu/arm926ejs/versatile/Kconfig | 3 - arch/arm/cpu/armv7/exynos/Kconfig | 3 - arch/arm/cpu/armv7/highbank/Kconfig | 3 - arch/arm/cpu/armv7/keystone/Kconfig | 3 - arch/arm/cpu/armv7/omap3/Kconfig | 3 - arch/arm/cpu/armv7/omap4/Kconfig | 3 - arch/arm/cpu/armv7/omap5/Kconfig | 3 - arch/arm/cpu/armv7/rmobile/Kconfig | 3 - arch/arm/cpu/armv7/s5pc1xx/Kconfig | 3 - arch/arm/cpu/armv7/start.S | 6 - arch/arm/cpu/armv7/uniphier/Kconfig | 6 - arch/arm/cpu/armv7/zynq/Kconfig | 3 - arch/arm/lib/interrupts.c | 27 ++++ arch/arm/lib/relocate.S | 30 +++++ arch/arm/lib/vectors.S | 2 +- board/BuR/kwb/Kconfig | 3 - board/BuR/tseries/Kconfig | 3 - board/BuS/eb_cpux9k2/Kconfig | 3 - board/BuS/vl_ma2sc/Kconfig | 3 - board/CarMediaLab/flea3/Kconfig | 3 - board/Marvell/aspenite/Kconfig | 3 - board/Marvell/dkb/Kconfig | 3 - board/Marvell/gplugd/Kconfig | 3 - board/afeb9260/Kconfig | 3 - board/altera/socfpga/Kconfig | 3 - board/aristainetos/Kconfig | 3 - board/armadeus/apf27/Kconfig | 3 - board/armltd/integrator/Kconfig | 24 ---- board/armltd/vexpress/Kconfig | 9 -- board/atmel/at91rm9200ek/Kconfig | 3 - board/atmel/at91sam9260ek/Kconfig | 3 - board/atmel/at91sam9261ek/Kconfig | 3 - board/atmel/at91sam9263ek/Kconfig | 3 - board/atmel/at91sam9m10g45ek/Kconfig | 3 - board/atmel/at91sam9n12ek/Kconfig | 3 - board/atmel/at91sam9rlek/Kconfig | 3 - board/atmel/at91sam9x5ek/Kconfig | 3 - board/atmel/sama5d3_xplained/Kconfig | 3 - board/atmel/sama5d3xek/Kconfig | 3 - board/bachmann/ot1200/Kconfig | 3 - board/balloon3/Kconfig | 3 - board/barco/titanium/Kconfig | 3 - board/bluegiga/apx4devkit/Kconfig | 3 - board/bluewater/snapper9260/Kconfig | 3 - board/boundary/nitrogen6x/Kconfig | 3 - board/broadcom/bcm28155_ap/Kconfig | 3 - board/broadcom/bcm958300k/Kconfig | 3 - board/broadcom/bcm958622hr/Kconfig | 3 - board/calao/sbc35_a9g20/Kconfig | 3 - board/calao/tny_a9260/Kconfig | 3 - board/calao/usb_a9263/Kconfig | 3 - board/cirrus/edb93xx/Kconfig | 3 - board/cm4008/Kconfig | 3 - board/cm41xx/Kconfig | 3 - board/compulab/cm_fx6/Kconfig | 8 -- board/compulab/cm_t335/Kconfig | 3 - board/congatec/cgtqmx6eval/Kconfig | 3 - board/creative/xfi3/Kconfig | 3 - board/davedenx/qong/Kconfig | 3 - board/denx/m28evk/Kconfig | 3 - board/denx/m53evk/Kconfig | 3 - board/egnite/ethernut5/Kconfig | 3 - board/embest/mx6boards/Kconfig | 3 - board/emk/top9000/Kconfig | 3 - board/esd/meesc/Kconfig | 3 - board/esd/otc570/Kconfig | 3 - board/esg/ima3-mx53/Kconfig | 3 - board/eukrea/cpu9260/Kconfig | 3 - board/eukrea/cpuat91/Kconfig | 3 - board/faraday/a320evb/Kconfig | 3 - board/freescale/ls1021aqds/Kconfig | 3 - board/freescale/ls1021atwr/Kconfig | 3 - board/freescale/mx23evk/Kconfig | 3 - board/freescale/mx25pdk/Kconfig | 3 - board/freescale/mx28evk/Kconfig | 3 - board/freescale/mx31ads/Kconfig | 3 - board/freescale/mx31pdk/Kconfig | 3 - board/freescale/mx35pdk/Kconfig | 3 - board/freescale/mx51evk/Kconfig | 3 - board/freescale/mx53ard/Kconfig | 3 - board/freescale/mx53evk/Kconfig | 3 - board/freescale/mx53loco/Kconfig | 3 - board/freescale/mx53smd/Kconfig | 3 - board/freescale/mx6qarm2/Kconfig | 3 - board/freescale/mx6qsabreauto/Kconfig | 3 - board/freescale/mx6sabresd/Kconfig | 3 - board/freescale/mx6slevk/Kconfig | 3 - board/freescale/mx6sxsabresd/Kconfig | 3 - board/freescale/vf610twr/Kconfig | 3 - board/gateworks/gw_ventana/Kconfig | 3 - board/genesi/mx51_efikamx/Kconfig | 3 - board/gumstix/pepper/Kconfig | 3 - board/h2200/Kconfig | 3 - board/hale/tt01/Kconfig | 3 - board/icpdas/lp8x4x/Kconfig | 3 - board/imx31_phycore/Kconfig | 3 - board/isee/igep0033/Kconfig | 3 - board/jornada/Kconfig | 3 - board/karo/tx25/Kconfig | 3 - board/logicpd/imx27lite/Kconfig | 6 - board/logicpd/imx31_litekit/Kconfig | 3 - board/mpl/vcma9/Kconfig | 3 - board/olimex/mx23_olinuxino/Kconfig | 3 - board/palmld/Kconfig | 3 - board/palmtc/Kconfig | 3 - board/palmtreo680/Kconfig | 3 - board/phytec/pcm051/Kconfig | 3 - board/ppcag/bg0900/Kconfig | 3 - board/pxa255_idp/Kconfig | 3 - board/raspberrypi/rpi_b/Kconfig | 3 - board/ronetix/pm9261/Kconfig | 3 - board/ronetix/pm9263/Kconfig | 3 - board/ronetix/pm9g45/Kconfig | 3 - board/samsung/goni/Kconfig | 3 - board/samsung/smdk2410/Kconfig | 3 - board/samsung/smdkc100/Kconfig | 3 - board/sandisk/sansa_fuze_plus/Kconfig | 3 - board/scb9328/Kconfig | 3 - board/schulercontrol/sc_sps_1/Kconfig | 3 - board/siemens/corvus/Kconfig | 3 - board/siemens/draco/Kconfig | 6 - board/siemens/pxm2/Kconfig | 3 - board/siemens/rut/Kconfig | 3 - board/siemens/taurus/Kconfig | 3 - board/silica/pengwyn/Kconfig | 3 - board/solidrun/hummingboard/Kconfig | 3 - board/spear/spear300/Kconfig | 3 - board/spear/spear310/Kconfig | 3 - board/spear/spear320/Kconfig | 3 - board/spear/spear600/Kconfig | 3 - board/spear/x600/Kconfig | 3 - board/st-ericsson/snowball/Kconfig | 3 - board/st-ericsson/u8500/Kconfig | 3 - board/sunxi/Kconfig | 3 - board/syteco/jadecpu/Kconfig | 3 - board/syteco/zmx25/Kconfig | 3 - board/taskit/stamp9g20/Kconfig | 3 - board/ti/am335x/Kconfig | 3 - board/ti/am43xx/Kconfig | 3 - board/ti/ti814x/Kconfig | 3 - board/ti/ti816x/Kconfig | 3 - board/ti/tnetv107xevm/Kconfig | 3 - board/timll/devkit3250/Kconfig | 3 - board/toradex/colibri_pxa270/Kconfig | 3 - board/tqc/tqma6/Kconfig | 3 - board/trizepsiv/Kconfig | 3 - board/ttcontrol/vision2/Kconfig | 3 - board/udoo/Kconfig | 3 - board/vpac270/Kconfig | 3 - board/wandboard/Kconfig | 3 - board/woodburn/Kconfig | 6 - board/xaeniax/Kconfig | 3 - board/zipitz2/Kconfig | 3 - common/lcd.c | 1 - 159 files changed, 270 insertions(+), 511 deletions(-) -- 2.1.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot