diff options
Diffstat (limited to 'arch/arm/lib')
-rw-r--r-- | arch/arm/lib/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/lib/armlinux.c | 10 | ||||
-rw-r--r-- | arch/arm/lib/ashldi3.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/ashrdi3.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/barebox.lds.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/div0.c | 4 | ||||
-rw-r--r-- | arch/arm/lib/lib1funcs.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/lshrdi3.S | 6 | ||||
-rw-r--r-- | arch/arm/lib/runtime-offset.S | 17 |
9 files changed, 25 insertions, 38 deletions
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 9d0ff7a856..2e624cdf84 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -16,6 +16,8 @@ obj-y += lib1funcs.o obj-y += ashrdi3.o obj-y += ashldi3.o obj-y += lshrdi3.o +obj-y += runtime-offset.o +pbl-y += runtime-offset.o obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memcpy.o obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memset.o obj-$(CONFIG_ARM_UNWIND) += unwind.o diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c index 9f9dea8754..9c134ed4b8 100644 --- a/arch/arm/lib/armlinux.c +++ b/arch/arm/lib/armlinux.c @@ -14,11 +14,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * */ #include <boot.h> @@ -80,7 +75,7 @@ void armlinux_set_revision(unsigned int rev) #ifdef CONFIG_ENVIRONMENT_VARIABLES export_env_ull("armlinux_system_rev", rev); #else - return armlinux_system_rev; + armlinux_system_rev = rev; #endif } @@ -264,6 +259,7 @@ void start_linux(void *adr, int swap, unsigned long initrd_address, setup_tags(initrd_address, initrd_size, swap); params = armlinux_bootparams; } + architecture = armlinux_get_architecture(); shutdown_barebox(); if (swap) { @@ -273,8 +269,6 @@ void start_linux(void *adr, int swap, unsigned long initrd_address, __asm__ __volatile__("mcr p15, 0, %0, c1, c0" :: "r" (reg)); } - architecture = armlinux_get_architecture(); - #ifdef CONFIG_THUMB2_BAREBOX __asm__ __volatile__ ( "mov r0, #0\n" diff --git a/arch/arm/lib/ashldi3.S b/arch/arm/lib/ashldi3.S index 65888467c4..b62e06f602 100644 --- a/arch/arm/lib/ashldi3.S +++ b/arch/arm/lib/ashldi3.S @@ -20,11 +20,7 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - +*/ #include <linux/linkage.h> diff --git a/arch/arm/lib/ashrdi3.S b/arch/arm/lib/ashrdi3.S index a8a32f67ee..db849b65fc 100644 --- a/arch/arm/lib/ashrdi3.S +++ b/arch/arm/lib/ashrdi3.S @@ -20,11 +20,7 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - +*/ #include <linux/linkage.h> diff --git a/arch/arm/lib/barebox.lds.S b/arch/arm/lib/barebox.lds.S index a69013f7f5..bac1a04f87 100644 --- a/arch/arm/lib/barebox.lds.S +++ b/arch/arm/lib/barebox.lds.S @@ -15,10 +15,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA * */ @@ -40,8 +36,6 @@ SECTIONS _stext = .; _text = .; *(.text_entry*) - __ll_return = .; - *(.text_ll_return*) __bare_init_start = .; *(.text_bare_init*) __bare_init_end = .; diff --git a/arch/arm/lib/div0.c b/arch/arm/lib/div0.c index 6313c6725d..852cb72331 100644 --- a/arch/arm/lib/div0.c +++ b/arch/arm/lib/div0.c @@ -15,10 +15,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA */ #include <common.h> diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 7d6f708c3c..bf1d0192d6 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S @@ -27,11 +27,7 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - +*/ #include <linux/linkage.h> #include <asm/assembler.h> diff --git a/arch/arm/lib/lshrdi3.S b/arch/arm/lib/lshrdi3.S index 3c7df3b36e..e77e96c7bc 100644 --- a/arch/arm/lib/lshrdi3.S +++ b/arch/arm/lib/lshrdi3.S @@ -20,11 +20,7 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA. */ - +*/ #include <linux/linkage.h> diff --git a/arch/arm/lib/runtime-offset.S b/arch/arm/lib/runtime-offset.S new file mode 100644 index 0000000000..ffa668cd7e --- /dev/null +++ b/arch/arm/lib/runtime-offset.S @@ -0,0 +1,17 @@ +#include <linux/linkage.h> +#include <asm/assembler.h> + +/* + * Get the offset between the link address and the address + * we are currently running at. + */ +ENTRY(get_runtime_offset) +1: adr r0, 1b + ldr r1, linkadr + subs r0, r1, r0 +THUMB( subs r0, r0, #1) + mov pc, lr + +linkadr: +.word get_runtime_offset +ENDPROC(get_runtime_offset) |