From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Thu, 16 Dec 2010 11:48:08 +0100 Subject: [U-Boot] [PATCH 5/5] MX5:MX53: add initial support for MX53EVK board In-Reply-To: <1292494665-25674-6-git-send-email-r64343@freescale.com> References: <1292494665-25674-1-git-send-email-r64343@freescale.com> <1292494665-25674-6-git-send-email-r64343@freescale.com> Message-ID: <4D09EE68.4000506@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Le 16/12/2010 11:17, Jason Liu a ?crit : > diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds > index 5725c30..7b6ab66 100644 > --- a/arch/arm/cpu/armv7/u-boot.lds > +++ b/arch/arm/cpu/armv7/u-boot.lds > @@ -34,6 +34,7 @@ SECTIONS > . = ALIGN(4); > .text : > { > + *(.ivt) NAK. This IVT looks suspiciously like an IPL or header for some bootloader to me. It should not be part of u-boot, but should be built separately then glued to u-boot.bin like is done for NAND bootings. U-boot LDS files for ARM should always start with the reset and exception vectors, i.e. start.o. > arch/arm/cpu/armv7/start.o (.text) > *(.text) > } > diff --git a/board/freescale/mx53evk/ivt.S b/board/freescale/mx53evk/ivt.S > new file mode 100755 > index 0000000..f7a176f > --- /dev/null > +++ b/board/freescale/mx53evk/ivt.S > @@ -0,0 +1,289 @@ > +/* > + * Copyright (C) 2010 Freescale Semiconductor, Inc. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License, or (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * 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 > + * .word with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > + * MA 02111-1307 USA > + */ > + > +#include > + > +.section ".ivt" > + > +ivt_header: .word 0x402000D1 /* Tag=0xD1, Len=0x0020, Ver=0x40 */ > +app_code_jump_v: .word (0xF8006400 + (plugin_start - CONFIG_SYS_TEXT_BASE)) > +reserv1: .word 0x0 > +dcd_ptr: .word 0x0 > +boot_data_ptr: .word (0xF8006400 + (boot_data - CONFIG_SYS_TEXT_BASE)) > +self_ptr: .word (0xF8006400 + (ivt_header - CONFIG_SYS_TEXT_BASE)) > +app_code_csf: .word 0x0 > +reserv2: .word 0x0 > +boot_data: .word 0xF8006000 > +image_len: .word 2*1024 > +plugin: .word 0x1 > + > +/* Second IVT to give entry point into the bootloader copied to DDR */ > +ivt2_header: .word 0x402000D1 /*Tag=0xD1, Len=0x0020, Ver=0x40 */ > +app2_code_jump_v: .word _start /*Entry point for the bootloader */ > +reserv3: .word 0x0 > +dcd2_ptr: .word 0x0 > +boot_data2_ptr: .word boot_data2 > +self_ptr2: .word ivt2_header > +app_code_csf2: .word 0x0 > +reserv4: .word 0x0 > +boot_data2: .word (CONFIG_SYS_TEXT_BASE - 0x400) > +image_len2: .word (_end - CONFIG_SYS_TEXT_BASE) > +plugin2: .word 0x0 > + > + > +/* Here starts the plugin code */ > +plugin_start: > + /* Save the return address and the function arguments */ The entry point of u-boot should be the reset vector. Obviously this is not a reset vector, and looks more like a hook that some ROM code expects to call as a subroutine. In any case, it should not be the entry code of u-boot. Please consider refactoring this into two different binaries as NAND boot does. Amicalement, -- Albert.