powerpc/mpc85xx: support application without resetvec segment in the linker script
Subsystems (6)
PATCH v5 1/10 powerpc/mpc85xx: support application without resetvec segment in the linker script
From: Ying Zhang <[email protected]>
For SD/SPI 2-stage bootloader, the On-Chip Rom code loads the SPL into L2 SRAM, then jump to it to begin execution. After that, the SPL loads the final uboot image into DDR, then jump to it to begin execution. The segment .resetvec in the SPL and in final U-boot is useless.
So, add new symbols CONFIG_SYS_MPC85XX_NO_RESETVEC for this application. If CONFIG_SYS_MPC85XX_NO_RESETVEC is set, the segment .resetvec is excluded and the segment .bootpg is placed in the previous 4K of the segment .text.
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. No change.
3. No change.
4. No change.
README | 5 +++++ arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 19 +++++++++++++++---- arch/powerpc/cpu/mpc85xx/u-boot.lds | 8 ++++++++ 3 files changed, 28 insertions(+), 4 deletions(-)
README +5 -0
@@ -4074,6 +4074,11 @@ Low Level (hardware related) configuration options: that is executed before the actual U-Boot. E.g. when compiling a NAND SPL. +- CONFIG_SYS_MPC85XX_NO_RESETVEC + Only for 85xx systems. If this variable is specified, the section + .resetvec is not kept and the section .bootpg is placed in the + previous 4k of the .text section. + - CONFIG_ARCH_MAP_SYSMEM Generally U-Boot (and in particular the md command) uses effective address. It is therefore not necessary to regard
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +15 -4
@@ -1,8 +1,5 @@ /* - * (C) Copyright 2006 - * Wolfgang Denk, DENX Software Engineering, wd at denx.de - * - * Copyright 2009 Freescale Semiconductor, Inc. + * Copyright 2013 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project.
@@ -26,6 +23,13 @@ #include "config.h" /* CONFIG_BOARDDIR */ OUTPUT_ARCH(powerpc) +#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC +PHDRS +{ + text PT_LOAD; + bss PT_LOAD; +} +#endif SECTIONS { . = CONFIG_SPL_TEXT_BASE;
@@ -68,10 +72,17 @@ SECTIONS #else #error unknown NAND controller #endif +#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC + .bootpg ADDR(.text) - 0x1000 : + { + KEEP(*(.bootpg)) + } :text = 0xffff +#else .resetvec ADDR(.text) + RESET_VECTOR_OFFSET : { KEEP(*(.resetvec)) } = 0xffff +#endif /* * Make sure that the bss segment isn't linked at 0x0, otherwise its * address won't be updated during relocation fixups.
arch/powerpc/cpu/mpc85xx/u-boot.lds +8 -0
@@ -95,6 +95,13 @@ SECTIONS . = ALIGN(256); __init_end = .; +#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC + .bootpg ADDR(.text) - 0x1000 : + { + KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg)) + } :text = 0xffff + . = ADDR(.text) + 0x80000; +#else .bootpg RESET_VECTOR_ADDRESS - 0xffc : { arch/powerpc/cpu/mpc85xx/start.o (.bootpg)
@@ -117,6 +124,7 @@ SECTIONS #if (RESET_VECTOR_ADDRESS == 0xfffffffc) . |= 0x10; #endif +#endif __bss_start = .; .bss (NOLOAD) :
Signature · 1 line
1.7.0.4
PATCH v5 2/10 powerpc/mpc85xx: modify the functionality clear_bss and aligning the end address of the BSS
From: Ying Zhang <[email protected]>
There will clear the BSS in the function clear_bss(), the reset address of the BSS started from the __bss_start, and increased by four-byte increments, finally stoped depending on the address is equal to the _bss_end. If the end address __bss_end is not alignment to 4byte, it will be an infinite loop.
1. The reset action stoped depending on the reset address is greater than or equal the end address of the BSS.
2. The end address of the BSS should be 4byte aligned. Because the reset unit is 4 Bytes.
This patch is on top of the patch "powerpc/mpc85xx: support application without resetvec segment in the linker script".
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Modified the function clear_bss().
3. Add explicit alignment of the BSS start address.
4. No change.
arch/powerpc/cpu/mpc85xx/start.S | 2 +- arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 2 ++ 2 files changed, 3 insertions(+), 1 deletions(-)
arch/powerpc/cpu/mpc85xx/start.S +1 -1
@@ -1795,7 +1795,7 @@ clear_bss: stw r0,0(r3) addi r3,r3,4 cmplw 0,r3,r4 - bne 5b + blt 5b 6: mr r3,r9 /* Init Data pointer */
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +2 -0
@@ -89,10 +89,12 @@ SECTIONS */ . |= 0x10; + . = ALIGN(4); __bss_start = .; .bss : { *(.sbss*) *(.bss*) } + . = ALIGN(4); __bss_end = .; }
Signature · 1 line
1.7.0.4
PATCH v5 3/10 common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
There will need the environment in SPL for reasons other than network support (in particular, hwconfig contains info for how to set up DDR).
Add a new symbol CONFIG_SPL_ENV_SUPPORT to replace CONFIG_SPL_NET_SUPPORT for environment in common/Makefile.
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Added explanation for CONFIG_SPL_ENV_SUPPORT.
3. Add symbol CONFIG_SPL_ENV_SUPPORT in include/configs/a3m071.h.
4. Add symbol CONFIG_SPL_ENV_IS_IN_NOWHERE in include/configs/am335x_evm.h and include/configs/am335x_evm.h
README | 9 +++++++++ common/Makefile | 27 +++++++++++++++++---------- include/configs/a3m071.h | 1 + include/configs/am335x_evm.h | 1 + include/configs/pcm051.h | 1 + 5 files changed, 29 insertions(+), 10 deletions(-)
README +9 -0
@@ -3022,6 +3022,15 @@ FIT uImage format: CONFIG_SPL_LIBGENERIC_SUPPORT Support for lib/libgeneric.o in SPL binary + CONFIG_SPL_ENV_SUPPORT + Support for the environment operating in SPL binary + + CONFIG_SPL_NET_SUPPORT + Support for the net/libnet.o in SPL binary. + It only co-exist with CONFIG_ENV_IS_NOWHERE in the SPL. it + conflicts with SPL env from storage medium specified by + CONFIG_ENV_IS_xxx. + CONFIG_SPL_PAD_TO Image offset to which the SPL should be padded before appending the SPL payload. By default, this is defined as
common/Makefile +17 -10
@@ -44,13 +44,11 @@ COBJS-$(CONFIG_SYS_GENERIC_BOARD) += board_r.o COBJS-y += cmd_boot.o COBJS-$(CONFIG_CMD_BOOTM) += cmd_bootm.o COBJS-y += cmd_help.o -COBJS-y += cmd_nvedit.o COBJS-y += cmd_version.o # environment COBJS-y += env_attr.o COBJS-y += env_callback.o -COBJS-y += env_common.o COBJS-y += env_flags.o COBJS-$(CONFIG_ENV_IS_IN_DATAFLASH) += env_dataflash.o COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_eeprom.o
@@ -216,18 +214,27 @@ COBJS-$(CONFIG_CMD_GPT) += cmd_gpt.o endif ifdef CONFIG_SPL_BUILD -COBJS-y += cmd_nvedit.o -COBJS-y += env_common.o COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += cmd_nvedit.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_attr.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_callback.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_common.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_flags.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_nowhere.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o +# environment +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_attr.o +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_flags.o +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_callback.o +ifneq ($(CONFIG_SPL_NET_SUPPORT),y) +COBJS-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o +COBJS-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o +COBJS-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o +COBJS-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o +COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o +else +COBJS-y += env_nowhere.o +endif endif +# core command +COBJS-y += cmd_nvedit.o +#environment +COBJS-y += env_common.o COBJS-$(CONFIG_BOUNCE_BUFFER) += bouncebuf.o COBJS-y += console.o COBJS-y += dlmalloc.o
include/configs/a3m071.h +1 -0
@@ -426,6 +426,7 @@#define CONFIG_SPL_BSS_MAX_SIZE (64 << 10)#define CONFIG_SPL_OS_BOOT +#define CONFIG_SPL_ENV_SUPPORT /* Place patched DT blob (fdt)@this address */ #define CONFIG_SYS_SPL_ARGS_ADDR 0x01800000
include/configs/am335x_evm.h +1 -0
@@ -355,6 +355,7 @@#define CONFIG_SPL_GPIO_SUPPORT #define CONFIG_SPL_YMODEM_SUPPORT #define CONFIG_SPL_NET_SUPPORT +#define CONFIG_SPL_ENV_SUPPORT #define CONFIG_SPL_NET_VCI_STRING "AM335x U-Boot SPL"#define CONFIG_SPL_ETH_SUPPORT #define CONFIG_SPL_SPI_SUPPORT
include/configs/pcm051.h +1 -0
@@ -231,6 +231,7 @@#define CONFIG_SPL_GPIO_SUPPORT #define CONFIG_SPL_YMODEM_SUPPORT #define CONFIG_SPL_NET_SUPPORT +#define CONFIG_SPL_ENV_SUPPORT #define CONFIG_SPL_NET_VCI_STRING "pcm051 U-Boot SPL"#define CONFIG_SPL_ETH_SUPPORT #define CONFIG_SPL_SPI_SUPPORT
Signature · 1 line
1.7.0.4
PATCH v5 3/10 common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL
Quoted 9 lines · ying.zhang at freescale.com
From: Ying Zhang <[email protected]>
There will need the environment in SPL for reasons other than network support (in particular, hwconfig contains info for how to set up DDR).
Add a new symbol
CONFIG_SPL_ENV_SUPPORTto replaceCONFIG_SPL_NET_SUPPORTfor environment in common/Makefile.Signed-off-by Ying Zhang <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130627/2050cd62/attachment.pgp>
PATCH v5 3/10 common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL
This patch was
Quoted 7 lines · Tom Rini
Quoted 5 lines · ying.zhang at freescale.com
From: Ying Zhang <[email protected]>
There will need the environment in SPL for reasons other than network support (in particular, hwconfig contains info for how to set up DDR).
Quoted 8 lines
Quoted 4 lines
Add a new symbol
CONFIG_SPL_ENV_SUPPORTto replaceCONFIG_SPL_NET_SUPPORTfor environment in common/Makefile.Signed-off-by Ying Zhang <[email protected]>Acked-by Tom Rini <[email protected]>
A prior version of this patch was already applied. I'll sort out what needs to be done to get this patchset correct tomorrow.
Andy
PATCH v5 4/10 Makefile: move the common makefile line to public area
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
Move the common makefile line shared by the SPL and non-SPL to the public area, so that we can avoid excessive SPL symbols. Some of them will be used by the SPL later.
This patch is on top of the patch "common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL".
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Move more CONFIG_ENV_IS_IN.. section to public area.
3. Resume CONFIG_ENV_IS_IN.. section to private area for non-SPL.
4. No change.
common/Makefile | 17 +++++++++-------- lib/Makefile | 14 ++++---------- 2 files changed, 13 insertions(+), 18 deletions(-)
common/Makefile +9 -8
@@ -189,14 +189,6 @@ COBJS-$(CONFIG_CMD_ZIP) += cmd_zip.o COBJS-$(CONFIG_CMD_ZFS) += cmd_zfs.o # others -ifdef CONFIG_DDR_SPD -SPD := y -endif -ifdef CONFIG_SPD_EEPROM -SPD := y -endif -COBJS-$(SPD) += ddr_spd.o -COBJS-$(CONFIG_HWCONFIG) += hwconfig.o COBJS-$(CONFIG_BOOTSTAGE) += bootstage.o COBJS-$(CONFIG_CONSOLE_MUX) += iomux.o COBJS-y += flash.o
@@ -235,6 +227,15 @@ endif COBJS-y += cmd_nvedit.o #environment COBJS-y += env_common.o +#others +ifdef CONFIG_DDR_SPD +SPD := y +endif +ifdef CONFIG_SPD_EEPROM +SPD := y +endif +COBJS-$(SPD) += ddr_spd.o +COBJS-$(CONFIG_HWCONFIG) += hwconfig.o COBJS-$(CONFIG_BOUNCE_BUFFER) += bouncebuf.o COBJS-y += console.o COBJS-y += dlmalloc.o
lib/Makefile +4 -10
@@ -26,7 +26,6 @@ include $(TOPDIR)/config.mk LIB = $(obj)libgeneric.o ifndef CONFIG_SPL_BUILD -COBJS-$(CONFIG_ADDR_MAP) += addr_map.o COBJS-$(CONFIG_AES) += aes.o COBJS-$(CONFIG_BZIP2) += bzlib.o COBJS-$(CONFIG_BZIP2) += bzlib_crctable.o
@@ -36,13 +35,10 @@ COBJS-$(CONFIG_BZIP2) += bzlib_huffman.o COBJS-$(CONFIG_USB_TTY) += circbuf.o COBJS-y += crc7.o COBJS-y += crc16.o -COBJS-y += display_options.o -COBJS-y += errno.o COBJS-$(CONFIG_OF_CONTROL) += fdtdec.o COBJS-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o COBJS-$(CONFIG_GZIP) += gunzip.o COBJS-$(CONFIG_GZIP_COMPRESSED) += gzip.o -COBJS-y += hashtable.o COBJS-y += initcall.o COBJS-$(CONFIG_LMB) += lmb.o COBJS-y += ldiv.o
@@ -60,14 +56,12 @@ endif ifdef CONFIG_SPL_BUILD COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += crc16.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += crc32.o -ifneq ($(CONFIG_SPL_SPI_FLASH_SUPPORT)$(CONFIG_SPL_NET_SUPPORT),) -COBJS-y += display_options.o -endif -COBJS-$(CONFIG_SPL_NET_SUPPORT) += errno.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += hashtable.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += net_utils.o endif +COBJS-$(CONFIG_ADDR_MAP) += addr_map.o +COBJS-y += hashtable.o +COBJS-y += errno.o +COBJS-y += display_options.o COBJS-$(CONFIG_BCH) += bch.o COBJS-y += crc32.o COBJS-y += ctype.o
Signature · 1 line
1.7.0.4
PATCH v5 4/10 Makefile: move the common makefile line to public area
Quoted 10 lines · ying.zhang at freescale.com
From: Ying Zhang <[email protected]>
Move the common makefile line shared by the SPL and non-SPL to the public area, so that we can avoid excessive SPL symbols. Some of them will be used by the SPL later.
This patch is on top of the patch "common/Makefile: Add new symbol
CONFIG_SPL_ENV_SUPPORTfor environment in SPL".Signed-off-by Ying Zhang <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130627/8f00756a/attachment.pgp>
PATCH v5 5/10 powerpc: deleted unused symbol CONFIG_SPL_NAND_MINIMAL and enabled some functionality for common SPL
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
1. The symbol CONFIG_SPL_NAND_MINIMAL is unused, so deleted it.
2. Some functions were unused in the minimal SPL, but it is useful in the common SPL. So, enabled some functionality for common SPL.
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "Add the symbol for the minimal SPL used to eliminate unused code"
3. Give up new symbol and delete the line
ifndef CONFIG_SPL_BUILD in common/env_common.c
4. Use !defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SPL_INIT_MINIMAL) to replace to new symbols.
arch/powerpc/cpu/mpc85xx/tlb.c | 3 ++- arch/powerpc/cpu/mpc8xxx/law.c | 6 ++++-- include/configs/MPC8313ERDB.h | 1 - include/configs/P1022DS.h | 1 - include/configs/p1_p2_rdb_pc.h | 1 - 5 files changed, 6 insertions(+), 6 deletions(-)
arch/powerpc/cpu/mpc85xx/tlb.c +2 -1
@@ -55,7 +55,8 @@ void init_tlbs(void)return ; } -#if !defined(CONFIG_NAND_SPL ) && !defined(CONFIG_SPL_BUILD ) +#if !defined(CONFIG_NAND_SPL ) && \ + (!defined(CONFIG_SPL_BUILD ) || !defined(CONFIG_SPL_INIT_MINIMAL ))void read_tlbcam_entry (int idx,u32 *valid,u32 *tsize,unsigned long *epn,phys_addr_t *rpn) {
arch/powerpc/cpu/mpc8xxx/law.c +4 -2
@@ -92,7 +92,8 @@ void disable_law(u8 idx)return ; } -#if !defined(CONFIG_NAND_SPL ) && !defined(CONFIG_SPL_BUILD ) +#if !defined(CONFIG_NAND_SPL ) && \ + (!defined(CONFIG_SPL_BUILD ) || !defined(CONFIG_SPL_INIT_MINIMAL ))static int get_law_entry (u8 i,struct law_entry *e) {u32 lawar;
@@ -122,7 +123,8 @@ int set_next_law(phys_addr_t addr, enum law_size sz, enum law_trgt_if id)return idx; } -#if !defined(CONFIG_NAND_SPL ) && !defined(CONFIG_SPL_BUILD ) +#if !defined(CONFIG_NAND_SPL ) && \ + (!defined(CONFIG_SPL_BUILD ) || !defined(CONFIG_SPL_INIT_MINIMAL ))int set_last_law (phys_addr_t addr,enum law_size sz,enum law_trgt_if id) {u32 idx;
include/configs/MPC8313ERDB.h +0 -1
@@ -40,7 +40,6 @@#define CONFIG_SPL_INIT_MINIMAL #define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_NAND_SUPPORT -#define CONFIG_SPL_NAND_MINIMAL #define CONFIG_SPL_FLUSH_IMAGE #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"#define CONFIG_SPL_MPC83XX_WAIT_FOR_NAND
include/configs/P1022DS.h +0 -1
@@ -41,7 +41,6 @@#define CONFIG_SPL_INIT_MINIMAL #define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_NAND_SUPPORT -#define CONFIG_SPL_NAND_MINIMAL #define CONFIG_SPL_FLUSH_IMAGE #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
include/configs/p1_p2_rdb_pc.h +0 -1
@@ -159,7 +159,6 @@#define CONFIG_SPL_INIT_MINIMAL #define CONFIG_SPL_SERIAL_SUPPORT #define CONFIG_SPL_NAND_SUPPORT -#define CONFIG_SPL_NAND_MINIMAL #define CONFIG_SPL_FLUSH_IMAGE #define CONFIG_SPL_TARGET "u-boot-with-spl.bin"
Signature · 1 line
1.7.0.4
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
The functionality env_import will be used in the SPL. They had been excluded by ifndef CONFIG_SPL_BUILD. Now, put it into the SPL.
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "spl: Make CONFIG_SPL_BUILD contain more functionality"
3. No change.
4. No change.
common/env_common.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
common/env_common.c +0 -2
@@ -156,7 +156,6 @@ int set_default_vars(int nvars, char * const vars[]) H_NOCLEAR | H_INTERACTIVE, nvars, vars); } -#ifndef CONFIG_SPL_BUILD /* * Check if CRC is valid and (if yes) import the environment. * Note that "buf" may or may not be aligned.
@@ -188,7 +187,6 @@ int env_import(const char *buf, int check)return 0 ; } -#endif void env_relocate (void ) {
Signature · 1 line
1.7.0.4
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Dear ying.zhang at freescale.com,
Quoted 14 lines · In message <[email protected]> you…
From: Ying Zhang <[email protected]>
The functionality
env_importwill be used in the SPL. They had been excluded by ifndefCONFIG_SPL_BUILD. Now, put it into the SPL.Signed-off-by Ying Zhang <[email protected]>---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "spl: MakeCONFIG_SPL_BUILDcontain more functionality"
3. No change.
4. No change.
Quoted 2 lines
common/env_common.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
This affects all boards, all architectures? How well has this been tested?
Best regards,
Wolfgang Denk
Signature · 7 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de I distrust all systematisers, and avoid them. The will to a system shows a lack of honesty. - Friedrich Wilhelm Nietzsche _G?tzen-D?mmerung [The Twilight of the Idols]_ ``Maxims and Missiles'' no. 26
A message that is not in the archive (sent off-list or not yet received): B3A295C5BD5B13458B2F5C6AFAD91046723AB8@039-SN2MPN1-021.039d.mgd.msft.net
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 33 lines · On 06/25/2013 09:29:37 PM, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de]
Sent: Friday, June 21, 2013 1:38 PM
To: Zhang Ying-B40530
Cc: u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Xie Xiaobo-R63061; Zhang Ying-B40530
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl:env_common.c: makeCONFIG_SPL_BUILDcontain functionenv_importDear ying.zhang at freescale.com,
In message <[email protected]> you
Quoted 10 lines · wrote:
The functionality
env_importwill be used in the SPL. They had been excluded by ifndefCONFIG_SPL_BUILD. Now, put it into the SPL.Signed-off-by Ying Zhang <[email protected]>---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "spl: MakeCONFIG_SPL_BUILDcontain morefunctionality"
Quoted 5 lines
3. No change.
4. No change.common/env_common.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
Quoted 7 lines
This affects all boards, all architectures? How well has this been tested?
[Zhang Ying]
May I suggest we define a new symbolCONFIG_SPL_ENV_IMPORTto contain the functionality "env_import"?
So, "#ifndefCONFIG_SPL_BUILD" will be changed to
"#if !defined(CONFIG_SPL_BUILD) ||defined(CONFIG_SPL_ENV_IMPORT)"
Can we figure out if the ifdef is really needed first?
-Scott
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 42 lines · Scott Wood
Quoted 33 lines · On 06/25/2013 09:29:37 PM, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de]
Sent: Friday, June 21, 2013 1:38 PM
To: Zhang Ying-B40530
Cc: u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Xie Xiaobo-R63061; Zhang Ying-B40530
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl:env_common.c: makeCONFIG_SPL_BUILDcontain functionenv_importDear ying.zhang at freescale.com,
In message <[email protected]> you
Quoted 10 lines · wrote:
The functionality
env_importwill be used in the SPL. They had been excluded by ifndefCONFIG_SPL_BUILD. Now, put it into the SPL.Signed-off-by Ying Zhang <[email protected]>---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "spl: MakeCONFIG_SPL_BUILDcontain morefunctionality"
Quoted 5 lines
3. No change.
4. No change.common/env_common.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)Quoted 7 lines
This affects all boards, all architectures? How well has this been tested?
[Zhang Ying]
May I suggest we define a new symbolCONFIG_SPL_ENV_IMPORTto contain the functionality "env_import"?
So, "#ifndefCONFIG_SPL_BUILD" will be changed to
"#if !defined(CONFIG_SPL_BUILD) ||defined(CONFIG_SPL_ENV_IMPORT)"
Quoted 1 line
Can we figure out if the ifdef is really needed first?
Building for am335x_evm and am335x_evm_usbspl should tell you if it is, or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130626/12430d09/attachment.pgp>
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
Sent: Thursday, June 27, 2013 1:35 AM
To: Wood Scott-B07421
Cc: Zhang Ying-B40530; u-boot at lists.denx.de; afleming at gmail.com; Wood Scott-B07421
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 42 lines · Scott Wood
Quoted 33 lines · On 06/25/2013 09:29:37 PM, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Wolfgang Denk [mailto:wd at denx.de]
Sent: Friday, June 21, 2013 1:38 PM
To: Zhang Ying-B40530
Cc: u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Xie Xiaobo-R63061; Zhang Ying-B40530
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl:env_common.c: makeCONFIG_SPL_BUILDcontain functionenv_importDear ying.zhang at freescale.com,
In message <[email protected]> you
Quoted 10 lines · wrote:
The functionality
env_importwill be used in the SPL. They had been excluded by ifndefCONFIG_SPL_BUILD. Now, put it into the SPL.Signed-off-by Ying Zhang <[email protected]>---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. Split from "spl: MakeCONFIG_SPL_BUILDcontain morefunctionality"
Quoted 5 lines
3. No change.
4. No change.common/env_common.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)Quoted 7 lines
This affects all boards, all architectures? How well has this been tested?
[Zhang Ying]
May I suggest we define a new symbolCONFIG_SPL_ENV_IMPORTto contain the functionality "env_import"?
So, "#ifndefCONFIG_SPL_BUILD" will be changed to
"#if !defined(CONFIG_SPL_BUILD) ||defined(CONFIG_SPL_ENV_IMPORT)"
Quoted 1 line
Can we figure out if the ifdef is really needed first?
Building for am335x_evm and am335x_evm_usbspl should tell you if it is, or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build for am335x_evm without this ifdef, no problem. Whether it can be removed?
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
[snip]
Quoted 7 lines
Building for
am335x_evmandam335x_evm_usbsplshould tell you if it is, or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build foram335x_evmwithout this ifdef, no problem. Whether it can be removed?
Did you also build am335x_evm_usbspl?
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130627/a41922fe/attachment.pgp>
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 7 lines · Tom Rini
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini[snip]
Quoted 1 line
Building for
am335x_evmandam335x_evm_usbsplshould tell you if itis,
Quoted 8 lines
Quoted 6 lines
or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build foram335x_evmwithout this ifdef, no problem. Whether it can be removed?Did you also build
am335x_evm_usbspl?
It builds OK for me with the ifdef removed. It adds 81 bytes to the SPL.
-Scott
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 15 lines · Scott Wood
Quoted 14 lines · Tom Rini
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini[snip]
Quoted 1 line
Building for
am335x_evmandam335x_evm_usbsplshould tell you ifit is,
Quoted 6 lines
or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build foram335x_evmwithout this ifdef, no problem. Whether it can be removed?
Quoted 4 lines
Quoted 1 line
Did you also build
am335x_evm_usbspl?It builds OK for me with the ifdef removed. It adds 81 bytes to the SPL.
I think we can live with that.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130627/55ece493/attachment.pgp>
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Excuse me, this patch has not been merged? Thanks.
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
Sent: Friday, June 28, 2013 5:57 AM
To: Wood Scott-B07421
Cc: u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Zhang Ying-B40530
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 15 lines · Scott Wood
Quoted 14 lines · Tom Rini
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini[snip]
Quoted 1 line
Building for
am335x_evmandam335x_evm_usbsplshould tell you ifit is,
Quoted 6 lines
or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build foram335x_evmwithout this ifdef, no problem. Whether it can be removed?
Quoted 4 lines
Quoted 1 line
Did you also build
am335x_evm_usbspl?It builds OK for me with the ifdef removed. It adds 81 bytes to the SPL.
I think we can live with that.
--
Tom
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
In reply to Tom RiniHi, Tom,
This patch hasn't been applied? I think it should be applied early and it is needed by other patches of this set. Thanks.
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
Sent: Friday, June 28, 2013 5:57 AM
To: Wood Scott-B07421
Cc: u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Zhang Ying-B40530
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 15 lines · Scott Wood
Quoted 14 lines · Tom Rini
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message-----
From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini[snip]
Quoted 1 line
Building for
am335x_evmandam335x_evm_usbsplshould tell you ifit is,
Quoted 6 lines
or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out.
[Zhang Ying]
Yes, I tried to build foram335x_evmwithout this ifdef, no problem. Whether it can be removed?
Quoted 4 lines
Quoted 1 line
Did you also build
am335x_evm_usbspl?It builds OK for me with the ifdef removed. It adds 81 bytes to the SPL.
I think we can live with that.
--
Tom
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 3 lines · On 08/13/2013 10:31 PM, Zhang Ying-B40530 wrote:
Hi, Tom, This patch hasn't been applied? I think it should be applied early and it is needed by other patches of this set. Thanks.
I expect that as part of the overall series, once ready, York will take this and include it in his pull request, which is why I've given it my acked-by.
Quoted 27 lines
-----Original Message----- From: Tom Rini
[mailto:tom.rini at gmail.com] On Behalf Of Tom Rini Sent: Friday, June 28, 2013 5:57 AM To: Wood Scott-B07421 Cc:
u-boot at lists.denx.de; Wood Scott-B07421; afleming at gmail.com; Zhang Ying-B40530 Subject: Re: [U-Boot] [PATCH 06/10 v5] spl:env_common.c: makeCONFIG_SPL_BUILDcontain functionenv_importQuoted 18 lines · Scott Wood
Quoted 16 lines · Tom Rini
Quoted 2 lines · On Thu, Jun 27, 2013 at 02:35:34AM +0000, Zhang Ying-B40530 wrote:
-----Original Message----- From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
[snip]
Quoted 2 lines
Building for
am335x_evmandam335x_evm_usbsplshould tell you ifit is,
Quoted 5 lines
or is not. Whacking network support into SPL required more than --gc-sections alone could give us and we needed to drop a few couldn't-ever-reach calls and functionality out. [Zhang Ying] Yes, I tried to build for
am335x_evmwithout this ifdef, no problem. Whether it can be removed?Did you also build
am335x_evm_usbspl?
Quoted 9 lines
Quoted 2 lines
It builds OK for me with the ifdef removed. It adds 81 bytes to the SPL.
I think we can live with that.
Acked-by Tom Rini <[email protected]>-- Tom
- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJSC4qaAAoJENk4IS6UOR1WekUP/1Z09OiAc2BHni42XWqAK9JB FvfQI82mHuI1eOSXa3hRT4wGpfuXaOhjydjXDoI6MNUvN3ZjxaE2EAPdr7oZX0ws DnRyKPOPHNyK3s/5CQWaKlCfDfxaL4a6mo4EYVsR+vMxJdcZr+wWBNNVwoWaAFU6 LDGlEwONt+m7fM6GGKRfFCfJ7iyBLks893Joitv7oAa2fOnnrto803Bpgq5IIaac IiEVaSznHfFEhtiaDhPRoUhhuYlgHfEYwSAMNm+FoxvIdKTus4EgBoTFXrbZRmzx Q9/SwS9FFKZrhKRj8xReB0Yn/wqWWdQFkuUknBnQENhzAXT+Qdr9J3EDYRBT1F9d KOrjmjZPgcbIrObhmeqAXb9qL5A1Tsa3v/Ap6RErdYwGoHSHhaAetfY3PqGagc3Z Yai9tJLqgrhuXYFqkcv9CIHhfwJC66nNZ+5bE3nAihjQW9Ny8soqTaoYQoC+MELM /AjEk/RAYXpSMW3dO9uS20VWEMaATIJ2cqHO04zAZcdvrYdTvRWmfGOYF8APYm1K 6JytRhTNf0Uh3Yatx7qpvBbNhT/mGAV7krUMQiAcRUg7FcAEIJFPawH4OEQx9yTF LAByOQ9BDRHErtON2gdksItJk3Sam4BwT1x1eeVq8fdzj2o/uTLIm5t63a53TdUd OnffrvuBulEjZQJCcq1h
=tuhI
-----END PGP SIGNATURE-----
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 11 lines · Tom Rini
Quoted 3 lines · On 08/13/2013 10:31 PM, Zhang Ying-B40530 wrote:
Hi, Tom, This patch hasn't been applied? I think it should be applied early and it is needed by other patches of this set. Thanks.
I expect that as part of the overall series, once ready, York will take this and include it in his pull request, which is why I've given it my acked-by.
Ying,
This patch fell through the crack. I didn't see it because it was marked as "superseded". Please check your other patches. You can delegate them to me.
York
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
York,
I had checked all the patch and I am sure there is only this patch almost forgotten. I don't know how to do. Need I send the patch again or other way? Thanks.
-----Original Message-----
From: sun york-R58495
Sent: Wednesday, August 14, 2013 11:42 PM
To: Zhang Ying-B40530
Cc: Tom Rini; Wood Scott-B07421; u-boot at lists.denx.de; afleming at gmail.com
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 11 lines · Tom Rini
Quoted 3 lines · On 08/13/2013 10:31 PM, Zhang Ying-B40530 wrote:
Hi, Tom, This patch hasn't been applied? I think it should be applied early and it is needed by other patches of this set. Thanks.
I expect that as part of the overall series, once ready, York will take this and include it in his pull request, which is why I've given it my acked-by.
Ying,
This patch fell through the crack. I didn't see it because it was marked as "superseded". Please check your other patches. You can delegate them to me.
York
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 5 lines · On Aug 14, 2013, at 7:25 PM, Zhang Ying-B40530 wrote:
York,
I had checked all the patch and I am sure there is only this patch almost forgotten. I don't know how to do. Need I send the patch again or other way? Thanks.
No need to resend. I can mark it. Just want to be sure there isn't a newer version hiding somewhere.
York
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Hi, York,
I see. I am sure there isn't newer version.
-----Original Message-----
From: sun york-R58495
Sent: Thursday, August 15, 2013 10:42 AM
To: Zhang Ying-B40530
Cc: Tom Rini; Wood Scott-B07421; u-boot at lists.denx.de; Andy Fleming; Xie Xiaobo-R63061
Subject: Re: [U-Boot] [PATCH 06/10 v5] spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 5 lines · On Aug 14, 2013, at 7:25 PM, Zhang Ying-B40530 wrote:
York,
I had checked all the patch and I am sure there is only this patch almost forgotten. I don't know how to do. Need I send the patch again or other way? Thanks.
No need to resend. I can mark it. Just want to be sure there isn't a newer version hiding somewhere.
York
PATCH v5 6/10 spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
Quoted 3 lines · On 08/14/2013 07:48 PM, Zhang Ying-B40530 wrote:
Hi, York,
I see. I am sure there isn't newer version.
Applied to u-boot-mpc85xx.git/master.
York
PATCH v5 7/10 powerpc/p1022ds: boot from SD Card with SPL
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
This patch introduces SPL to enable a loader stub that runs in the L2 SRAM, after being loaded by the code from the internal on-chip ROM. It loads the final uboot image into DDR, then jump to it to begin execution.
The SPL's size is sizeable, the maximum size must not exceed the size of L2 SRAM. It initializes the DDR through SPD code, and copys final uboot image to DDR. So there are two stage uboot images:
* spl_boot, 96KB size. The env variables are copied to L2 SRAM, so that ddr spd code can get the interleaving mode setting in env. It loads final uboot image from offset 96KB.
* final uboot image, size is variable depends on the functions enabled.
This patch is on top of the following patch:
1. common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL.
2. Makefile: move the common makefile line to public area
3. powerpc/mpc85xx: support application without resetvec segment in the linker script.
4. powerpc/mpc85xx: modify the function clear_bss and the end address of the BSS
5. powerpc: spl: deleted unused symbol CONFIG_SPL_NAND_MINIMAL and enabled some functionality for common SPL
6. spl: env_common.c: make CONFIG_SPL_BUILD contain function env_import
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. No change.
3. No change.
4. No change.
README | 7 + arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 5 + .../cpu/mpc8xxx/ddr/lc_common_dimm_params.c | 4 + board/freescale/common/Makefile | 2 - board/freescale/p1022ds/Makefile | 3 + board/freescale/p1022ds/spl.c | 112 +++++++++++++++++ board/freescale/p1022ds/tlb.c | 9 ++- doc/README.mpc85xx-sd-spi-boot | 81 ++++++++++++ drivers/mmc/Makefile | 3 + drivers/mmc/fsl_esdhc_spl.c | 131 ++++++++++++++++++++ drivers/mmc/mmc.c | 2 + include/configs/P1022DS.h | 55 +++++++- include/fsl_esdhc.h | 1 + spl/Makefile | 3 + 14 files changed, 408 insertions(+), 10 deletions(-) create mode 100644 board/freescale/p1022ds/spl.c create mode 100644 doc/README.mpc85xx-sd-spi-boot create mode 100644 drivers/mmc/fsl_esdhc_spl.c
README +7 -0
@@ -2979,6 +2979,13 @@ FIT uImage format: Support for NAND boot using simple NAND drivers that expose the cmd_ctrl() interface. + CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT + Set for the SPL on PPC mpc8xxx targets, support for + arch/powerpc/cpu/mpc8xxx/ddr/libddr.o in SPL binary. + + CONFIG_SPL_COMMON_INIT_DDR + Set for common ddr init with serial presence detect in + SPL binary. CONFIG_SYS_NAND_5_ADDR_CYCLE, CONFIG_SYS_NAND_PAGE_COUNT, CONFIG_SYS_NAND_PAGE_SIZE, CONFIG_SYS_NAND_OOBSIZE, CONFIG_SYS_NAND_BLOCK_SIZE, CONFIG_SYS_NAND_BAD_BLOCK_POS,
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +5 -0
@@ -57,6 +57,11 @@ SECTIONS } _edata = .; + . = .; + __start___ex_table = .; + __ex_table : { *(__ex_table) } + __stop___ex_table = .; + . = ALIGN(8); __init_begin = .; __init_end = .;
arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c +4 -0
@@ -218,12 +218,16 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,if (dimm_params[i].n_ranks) {if (dimm_params[i].registered_dimm) { temp1 =1 ; +#ifndef CONFIG_SPL_BUILD printf ("Detected RDIMM %s\n" , dimm_params[i].mpart); +#endif }else { temp2 =1 ; +#ifndef CONFIG_SPL_BUILD printf ("Detected UDIMM %s\n" , dimm_params[i].mpart); +#endif } } }
board/freescale/common/Makefile +0 -2
@@ -52,9 +52,7 @@ COBJS-$(CONFIG_MPC8555CDS) += cds_pci_ft.o COBJS-$(CONFIG_MPC8536DS) += ics307_clk.o COBJS-$(CONFIG_MPC8572DS) += ics307_clk.o -ifndef CONFIG_SPL_BUILD COBJS-$(CONFIG_P1022DS) += ics307_clk.o -endif COBJS-$(CONFIG_P2020DS) += ics307_clk.o COBJS-$(CONFIG_P3041DS) += ics307_clk.o COBJS-$(CONFIG_P4080DS) += ics307_clk.o
board/freescale/p1022ds/Makefile +3 -0
@@ -24,6 +24,9 @@ ifdef MINIMAL COBJS-y += spl_minimal.o tlb.o law.o else +ifdef CONFIG_SPL_BUILD +COBJS-y += spl.o +endif COBJS-y += $(BOARD).o COBJS-y += ddr.o COBJS-y += law.o
board/freescale/p1022ds/spl.c new file +112 -0
112 lines not on this page · raw message
board/freescale/p1022ds/tlb.c +8 -1
@@ -74,7 +74,8 @@ struct fsl_e_tlb_entry tlb_table[] = { MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, 0, 7, BOOKE_PAGESZ_4K, 1), -#if defined(CONFIG_SYS_RAMBOOT ) || defined(CONFIG_SPL ) +#if defined(CONFIG_SYS_RAMBOOT ) || \ + (defined(CONFIG_SPL ) && !defined(CONFIG_SPL_COMMON_INIT_DDR ))/* **** - eSDHC/eSPI/NAND boot */ SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE, CONFIG_SYS_DDR_SDRAM_BASE, MAS3_SX|MAS3_SW|MAS3_SR, 0,
@@ -93,6 +94,12 @@ struct fsl_e_tlb_entry tlb_table[] = { 0, 10, BOOKE_PAGESZ_16K, 1),#endif +#ifdef CONFIG_SYS_INIT_L2_ADDR +/* *I*G - L2SRAM */ +SET_TLB_ENTRY (1 ,CONFIG_SYS_INIT_L2_ADDR ,CONFIG_SYS_INIT_L2_ADDR_PHYS , +MAS3_SX |MAS3_SW |MAS3_SR ,MAS2_G , + 0, 11, BOOKE_PAGESZ_256K, 1) +#endif };int num_tlb_entries =ARRAY_SIZE (tlb_table);
doc/README.mpc85xx-sd-spi-boot new file +81 -0
81 lines not on this page · raw message
drivers/mmc/Makefile +3 -0
@@ -48,6 +48,9 @@ COBJS-$(CONFIG_TEGRA_MMC) += tegra_mmc.o COBJS-$(CONFIG_DWMMC) += dw_mmc.o COBJS-$(CONFIG_EXYNOS_DWMMC) += exynos_dw_mmc.o COBJS-$(CONFIG_ZYNQ_SDHCI) += zynq_sdhci.o +ifdef CONFIG_SPL_BUILD +COBJS-$(CONFIG_SPL_MMC_BOOT) += fsl_esdhc_spl.o +endif COBJS := $(COBJS-y) SRCS := $(COBJS:.o=.c)
drivers/mmc/fsl_esdhc_spl.c new file +131 -0
131 lines not on this page · raw message
drivers/mmc/mmc.c +2 -0
@@ -1498,7 +1498,9 @@ int mmc_initialize(bd_t *bis)if (board_mmc_init (bis) <0 )cpu_mmc_init (bis); +#ifndef CONFIG_SPL_BUILD print_mmc_devices (',' ); +#endif do_preinit ();return 0 ;
include/configs/P1022DS.h +48 -7
80 lines not on this page · raw message
include/fsl_esdhc.h +1 -0
@@ -198,5 +198,6 @@ void fdt_fixup_esdhc(void *blob, bd_t *bd);static inline int fsl_esdhc_mmc_init (bd_t *bis) {return -ENOSYS ; }static inline void fdt_fixup_esdhc (void *blob,bd_t *bd) {}#endif /* CONFIG_FSL_ESDHC */ +void mmc_boot (void );#endif /* __FSL_ESDHC_H__ */
spl/Makefile +3 -0
@@ -51,6 +51,9 @@ LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o endif ifeq ($(CPU),mpc85xx) LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o +ifdef CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT +LIBS-y += arch/powerpc/cpu/mpc8xxx/ddr/libddr.o +endif endif ifeq ($(CPU),mpc86xx) LIBS-y += arch/powerpc/cpu/mpc8xxx/lib8xxx.o
Signature · 1 line
1.7.0.4
PATCH v5 8/10 powerpc/p1022ds: boot from spi flash with SPL
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
Support to boot from spi flash.
This patch is on top of the patch:
powerpc/p1022ds: boot from SD Card with SPL
---
Compared with the original version, Changed as below:
1. Split from "boot from SD card/SPI flash with SPL".
2. No change.
3. No change.
4. No change.
board/freescale/p1022ds/spl.c | 12 +++++- drivers/mtd/spi/Makefile | 1 + drivers/mtd/spi/fsl_espi_spl.c | 78 ++++++++++++++++++++++++++++++++++++++++ drivers/mtd/spi/spi_flash.c | 2 + include/configs/P1022DS.h | 36 +++++++++++++++---- 5 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 drivers/mtd/spi/fsl_espi_spl.c
board/freescale/p1022ds/spl.c +10 -2
@@ -21,13 +21,12 @@#include <common.h> #include <ns16550.h> -#include <asm/fsl_law.h> -#include <asm/fsl_ddr_sdram.h> #include <malloc.h> #include <mmc.h> #include <i2c.h> #include "../common/ngpixis.h" #include <fsl_esdhc.h> +#include <spi_flash.h> DECLARE_GLOBAL_DATA_PTR ;
@@ -54,6 +53,11 @@ void board_init_f(ulong bootflag)setbits_be32 (&gur->pmuxcr,in_be32 (&gur->pmuxcr) | MPC85xx_PMUXCR_SD_DATA); +#ifdef CONFIG_SPL_SPI_BOOT +/* Enable the SPI */ +clrsetbits_8 (&pixis->brdcfg0,PIXIS_ELBC_SPI_MASK ,PIXIS_SPI ); +#endif +/* Read back the register to synchronize the write. */ in_be32 (&gur->pmuxcr);
@@ -67,6 +71,8 @@ void board_init_f(ulong bootflag) bus_clk / 16 / CONFIG_BAUDRATE);#ifdef CONFIG_SPL_MMC_BOOT puts ("\nSD boot...\n" ); +#elif defined(CONFIG_SPL_SPI_BOOT ) +puts ("\nSPI Flash boot...\n" );#endif /* copy code to RAM and jump to it - this should not return */
@@ -108,5 +114,7 @@ void board_init_r(gd_t *gd, ulong dest_addr)#ifdef CONFIG_SPL_MMC_BOOT mmc_boot (); +#elif defined(CONFIG_SPL_SPI_BOOT ) +spi_boot ();#endif }
drivers/mtd/spi/Makefile +1 -0
@@ -27,6 +27,7 @@ LIB := $(obj)libspi_flash.o ifdef CONFIG_SPL_BUILD COBJS-$(CONFIG_SPL_SPI_LOAD) += spi_spl_load.o +COBJS-$(CONFIG_SPL_SPI_BOOT) += fsl_espi_spl.o endif COBJS-$(CONFIG_SPI_FLASH) += spi_flash.o
drivers/mtd/spi/fsl_espi_spl.c new file +78 -0
78 lines not on this page · raw message
drivers/mtd/spi/spi_flash.c +2 -0
@@ -428,12 +428,14 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, goto err_manufacturer_probe; }#endif +#ifndef CONFIG_SPL_BUILD printf ("SF: Detected %s with page size " , flash->name);print_size (flash->sector_size,", total " );print_size (flash->size,"" );if (flash->memory_map)printf (", mapped at %p" , flash->memory_map);puts ("\n" ); +#endif spi_release_bus (spi);
include/configs/P1022DS.h +29 -7
@@ -48,11 +48,33 @@#endif #ifdef CONFIG_SPIFLASH -#define CONFIG_RAMBOOT_SPIFLASH -#define CONFIG_SYS_RAMBOOT -#define CONFIG_SYS_EXTRA_ENV_RELOC -#define CONFIG_SYS_TEXT_BASE 0x11000000 -#define CONFIG_RESET_VECTOR_ADDRESS 0x1107fffc +#define CONFIG_SPL +#define CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT +#define CONFIG_SPL_ENV_SUPPORT +#define CONFIG_SPL_SERIAL_SUPPORT +#define CONFIG_SPL_SPI_SUPPORT +#define CONFIG_SPL_SPI_FLASH_SUPPORT +#define CONFIG_SPL_SPI_FLASH_MINIMAL +#define CONFIG_SPL_FLUSH_IMAGE +#define CONFIG_SPL_TARGET "u-boot-with-spl.bin" +#define CONFIG_SPL_LIBGENERIC_SUPPORT +#define CONFIG_SPL_LIBCOMMON_SUPPORT +#define CONFIG_SPL_I2C_SUPPORT +#define CONFIG_FSL_LAW /* Use common FSL init code */ +#define CONFIG_SYS_TEXT_BASE 0x11001000 +#define CONFIG_SPL_TEXT_BASE 0xf8f81000 +#define CONFIG_SPL_PAD_TO 0x18000 +#define CONFIG_SPL_MAX_SIZE (96 * 1024) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_SIZE (512 << 10) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_DST (0x11000000) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_START (0x11000000) +#define CONFIG_SYS_SPI_FLASH_U_BOOT_OFFS (96 << 10) +#define CONFIG_SYS_MPC85XX_NO_RESETVEC +#define CONFIG_SYS_LDSCRIPT "arch/powerpc/cpu/mpc85xx/u-boot.lds" +#define CONFIG_SPL_SPI_BOOT +#ifdef CONFIG_SPL_BUILD +#define CONFIG_SPL_COMMON_INIT_DDR +#endif #endif #define CONFIG_NAND_FSL_ELBC
@@ -318,7 +340,7 @@* Config the L2 Cache as L2 SRAM */ #if defined(CONFIG_SPL_BUILD ) -#if defined(CONFIG_SDCARD ) +#if defined(CONFIG_SDCARD ) || defined(CONFIG_SPIFLASH )#define CONFIG_SYS_INIT_L2_ADDR 0xf8f80000#define CONFIG_SYS_INIT_L2_ADDR_PHYS CONFIG_SYS_INIT_L2_ADDR#define CONFIG_SYS_L2_SIZE (256 << 10)
@@ -563,7 +585,7 @@/* * Environment */ -#ifdef CONFIG_RAMBOOT_SPIFLASH +#ifdef CONFIG_SPIFLASH #define CONFIG_ENV_IS_IN_SPI_FLASH #define CONFIG_ENV_SPI_BUS 0#define CONFIG_ENV_SPI_CS 0
Signature · 1 line
1.7.0.4
PATCH v5 9/10 nand: tpl : introduce the TPL based on the SPL
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
Due to the nand SPL on some board(e.g. P1022DS)has a size limit, it can not be more than 4K. So, the SPL cannot initialize the DDR with the SPD code. This patch introduces TPL to enable a loader stub that runs in the L2 SRAM, after being loaded by the code from the SPL. It initializes the DDR with the SPD or other operations.
The TPL's size is sizeable, the maximum size must not exceed the size of L2 SRAM. It initializes the DDR through SPD code, and copys final uboot image to DDR. So there are three stage uboot images:
* spl_boot, * tpl_boot, * final uboot image,
This patch is on top of the patch:
powerpc/p1022ds: boot from spi flash with SPL
---
Compared with the original version, Changed as below:
1. Split from "powerpc/p1022ds: nand: introduce the TPL based on the SPL".
2. No change.
3. No change.
4. No change.
Makefile | 21 +++- README | 52 ++++++- arch/powerpc/config.mk | 2 + .../cpu/mpc8xxx/ddr/lc_common_dimm_params.c | 4 +- arch/powerpc/lib/Makefile | 2 + common/Makefile | 9 + common/cmd_nvedit.c | 8 +- config.mk | 32 ++++ doc/README.TPL | 69 +++++++++ drivers/mtd/nand/Makefile | 8 + drivers/mtd/nand/fsl_elbc_spl.c | 4 + drivers/serial/serial.c | 2 +- include/bootstage.h | 3 +- tpl/Makefile | 161 ++++++++++++++++++++ 14 files changed, 366 insertions(+), 11 deletions(-) create mode 100644 doc/README.TPL create mode 100644 tpl/Makefile
Makefile +20 -1
@@ -118,10 +118,11 @@ endif # ifneq ($(BUILD_DIR),) OBJTREE := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR)) SPLTREE := $(OBJTREE)/spl +TPLTREE := $(OBJTREE)/tpl SRCTREE := $(CURDIR) TOPDIR := $(SRCTREE) LNDIR := $(OBJTREE) -export TOPDIR SRCTREE OBJTREE SPLTREE +export TOPDIR SRCTREE OBJTREE SPLTREE TPLTREE MKCONFIG := $(SRCTREE)/mkconfig export MKCONFIG
@@ -412,6 +413,7 @@ ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin +ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin ifneq ($(CONFIG_SPL_TARGET),) ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
@@ -498,6 +500,18 @@ $(obj)u-boot-with-spl.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@ rm $(obj)spl/u-boot-spl-pad.bin +$(obj)u-boot-with-tpl.bin: $(obj)spl/u-boot-spl.bin $(obj)tpl/u-boot-tpl.bin \ + $(obj)u-boot.bin + $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SPL_PAD_TO) \ + -I binary -O binary \ + $(obj)spl/u-boot-spl.bin $(obj)spl/u-boot-spl-pad.bin + $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_PAD_TO) \ + -I binary -O binary \ + $(obj)tpl/u-boot-tpl.bin $(obj)tpl/u-boot-tpl-pad.bin + cat $(obj)spl/u-boot-spl-pad.bin $(obj)tpl/u-boot-tpl-pad.bin \ + $(obj)u-boot.bin > $@ + rm $(obj)spl/u-boot-spl-pad.bin $(obj)tpl/u-boot-tpl-pad.bin + $(obj)u-boot-with-spl.imx: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(MAKE) -C $(SRCTREE)/arch/arm/imx-common \ $(OBJTREE)/u-boot-with-spl.imx
@@ -622,6 +636,9 @@ $(obj)u-boot-nand.bin: nand_spl $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin: $(SUBDIR_TOOLS) depend $(MAKE) -C spl all +$(obj)tpl/u-boot-tpl.bin: $(SUBDIR_TOOLS) depend + $(MAKE) -C tpl all + updater: $(MAKE) -C tools/updater all
@@ -870,6 +887,8 @@ clobber: tidy @rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map} @rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.map} @rm -f $(obj)spl/u-boot-spl.lds + @rm -f $(obj)tpl/{u-boot-tpl,u-boot-tpl.bin,u-boot-tpl.map} + @rm -f $(obj)tpl/u-boot-tpl.lds @rm -f $(obj)MLO MLO.byteswap @rm -f $(obj)SPL @rm -f $(obj)tools/xway-swap-bytes
README +50 -2
76 lines not on this page · raw message
arch/powerpc/config.mk +2 -0
@@ -48,5 +48,7 @@ endif # Only test once ifneq ($(CONFIG_SPL_BUILD),y) +ifneq ($(CONFIG_TPL_BUILD),y) ALL-y += checkgcc4 endif +endif
arch/powerpc/cpu/mpc8xxx/ddr/lc_common_dimm_params.c +2 -2
@@ -218,13 +218,13 @@ compute_lowest_common_dimm_parameters(const dimm_params_t *dimm_params,if (dimm_params[i].n_ranks) {if (dimm_params[i].registered_dimm) { temp1 =1 ; -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )printf ("Detected RDIMM %s\n" , dimm_params[i].mpart);#endif }else { temp2 =1 ; -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )printf ("Detected UDIMM %s\n" , dimm_params[i].mpart);#endif
arch/powerpc/lib/Makefile +2 -0
@@ -59,10 +59,12 @@ SOBJS-y += reloc.o COBJS-$(CONFIG_BAT_RW) += bat_rw.o ifndef CONFIG_SPL_BUILD +ifndef CONFIG_TPL_BUILD ifndef CONFIG_SYS_GENERIC_BOARD COBJS-y += board.o endif endif +endif COBJS-y += bootm.o COBJS-y += cache.o COBJS-y += extable.o
common/Makefile +9 -0
@@ -27,6 +27,7 @@ LIB = $(obj)libcommon.o # core ifndef CONFIG_SPL_BUILD +ifndef CONFIG_TPL_BUILD COBJS-y += main.o COBJS-y += command.o COBJS-y += exports.o
@@ -204,6 +205,7 @@ COBJS-$(CONFIG_USB_KEYBOARD) += usb_kbd.o COBJS-$(CONFIG_CMD_DFU) += cmd_dfu.o COBJS-$(CONFIG_CMD_GPT) += cmd_gpt.o endif +endif ifdef CONFIG_SPL_BUILD COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
@@ -223,6 +225,13 @@ else COBJS-y += env_nowhere.o endif endif + +ifdef CONFIG_TPL_BUILD +COBJS-$(CONFIG_SYS_ENV_SUPPORT) += env_attr.o +COBJS-$(CONFIG_SYS_ENV_SUPPORT) += env_flags.o +COBJS-$(CONFIG_SYS_ENV_SUPPORT) += env_callback.o +endif + # core command COBJS-y += cmd_nvedit.o #environment
common/cmd_nvedit.c +4 -4
@@ -87,7 +87,7 @@ int get_env_id(void)return env_id; } -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )/* * Command interface: print one or all environment variables *
@@ -356,7 +356,7 @@ ulong getenv_hex(const char *varname, ulong default_val)return value; } -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )static int do_env_set (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {if (argc <2 )
@@ -700,7 +700,7 @@ ulong getenv_ulong(const char *name, int base, ulong default_val)return str ?simple_strtoul (str,NULL , base) : default_val; } -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )#if defined(CONFIG_CMD_SAVEENV ) && !defined(CONFIG_ENV_IS_NOWHERE )static int do_env_save (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[])
@@ -741,7 +741,7 @@ int envmatch(uchar *s1, int i2)return -1 ; } -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )static int do_env_default (cmd_tbl_t *cmdtp,int __flag,int argc,char *const argv[]) {
config.mk +32 -0
@@ -41,8 +41,12 @@ ifneq ($(OBJTREE),$(SRCTREE)) ifeq ($(CONFIG_SPL_BUILD),y) obj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/) else +ifeq ($(CONFIG_TPL_BUILD),y) +obj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/) +else obj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/) endif +endif src := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/) $(shell mkdir -p $(obj))
@@ -53,8 +57,14 @@ obj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/) $(shell mkdir -p $(obj)) else +ifeq ($(CONFIG_TPL_BUILD),y) +obj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/) + +$(shell mkdir -p $(obj)) +else obj := endif +endif src := endif
@@ -210,6 +220,11 @@ CPPFLAGS += -ffunction-sections -fdata-sections LDFLAGS_FINAL += --gc-sections endif +ifeq ($(CONFIG_TPL_BUILD),y) +CPPFLAGS += -ffunction-sections -fdata-sections +LDFLAGS_FINAL += --gc-sections +endif + ifneq ($(CONFIG_SYS_TEXT_BASE),) CPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) endif
@@ -218,10 +233,18 @@ ifneq ($(CONFIG_SPL_TEXT_BASE),) CPPFLAGS += -DCONFIG_SPL_TEXT_BASE=$(CONFIG_SPL_TEXT_BASE) endif +ifneq ($(CONFIG_TPL_TEXT_BASE),) +CPPFLAGS += -DCONFIG_TPL_TEXT_BASE=$(CONFIG_TPL_TEXT_BASE) +endif + ifneq ($(CONFIG_SPL_PAD_TO),) CPPFLAGS += -DCONFIG_SPL_PAD_TO=$(CONFIG_SPL_PAD_TO) endif +ifneq ($(CONFIG_SYS_PAD_TO),) +CPPFLAGS += -DCONFIG_SYS_PAD_TO=$(CONFIG_SYS_PAD_TO) +endif + ifneq ($(CONFIG_UBOOT_PAD_TO),) CPPFLAGS += -DCONFIG_UBOOT_PAD_TO=$(CONFIG_UBOOT_PAD_TO) endif
@@ -230,6 +253,10 @@ ifeq ($(CONFIG_SPL_BUILD),y) CPPFLAGS += -DCONFIG_SPL_BUILD endif +ifeq ($(CONFIG_TPL_BUILD),y) +CPPFLAGS += -DCONFIG_TPL_BUILD +endif + # Does this architecture support generic board init? ifeq ($(__HAVE_ARCH_GENERIC_BOARD),) ifneq ($(CONFIG_SYS_GENERIC_BOARD),)
@@ -294,6 +321,11 @@ ifneq ($(CONFIG_SPL_TEXT_BASE),) LDFLAGS_u-boot-spl += -Ttext $(CONFIG_SPL_TEXT_BASE) endif +LDFLAGS_u-boot-tpl += -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL) +ifneq ($(CONFIG_TPL_TEXT_BASE),) +LDFLAGS_u-boot-tpl += -Ttext $(CONFIG_TPL_TEXT_BASE) +endif + # Linus' kernel sanity checking tool CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ -Wbitwise -Wno-return-void -D__CHECK_ENDIAN__ $(CF)
doc/README.TPL new file +69 -0
69 lines not on this page · raw message
drivers/mtd/nand/Makefile +8 -0
@@ -42,6 +42,8 @@ COBJS-$(CONFIG_SPL_NAND_BASE) += nand_base.o else # not spl +ifndef CONFIG_TPL_BUILD + NORMAL_DRIVERS=y COBJS-y += nand.o
@@ -51,6 +53,7 @@ COBJS-y += nand_util.o COBJS-y += nand_ecc.o COBJS-y += nand_base.o +endif # not tpl endif # not spl ifdef NORMAL_DRIVERS
@@ -82,8 +85,13 @@ COBJS-$(CONFIG_NAND_DOCG4) += docg4.o else # minimal SPL drivers +ifdef CONFIG_SPL_BUILD COBJS-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o COBJS-$(CONFIG_NAND_MXC) += mxc_nand_spl.o +endif +ifdef CONFIG_TPL_BUILD +COBJS-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o +endif endif # drivers endif # nand
drivers/mtd/nand/fsl_elbc_spl.c +4 -0
@@ -47,7 +47,11 @@ static void nand_wait(void) } } +#ifdef CONFIG_SPL_BUILD static int nand_load_image(uint32_t offs, unsigned int uboot_size, void *vdst) +#else +int nand_load_image(uint32_t offs, unsigned int uboot_size, void *vdst) +#endif {fsl_lbc_t *regs =LBC_BASE_ADDR ;uchar *buf = (uchar *)CONFIG_SYS_NAND_BASE ;
drivers/serial/serial.c +1 -1
@@ -371,7 +371,7 @@ static struct serial_device *get_current(void)/* We must have a console device */ if (!dev) { -#ifdef CONFIG_SPL_BUILD +#if defined(CONFIG_SPL_BUILD ) || defined(CONFIG_TPL_BUILD )puts ("Cannot find console\n" );hang ();#else
include/bootstage.h +2 -1
@@ -220,7 +220,8 @@ enum bootstage_id {*/ ulong timer_get_boot_us (void ); -#if !defined(CONFIG_SPL_BUILD ) && !defined(USE_HOSTCC ) +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD ) && \ + !defined(USE_HOSTCC )/* * Board code can implement show_boot_progress() if needed. *
tpl/Makefile new file +161 -0
161 lines not on this page · raw message
Signature · 1 line
1.7.0.4
PATCH v5 10/10 powerpc: p1022ds: support TPL on the P1022DS
In reply to ying.zhang at freescale.comFrom: Ying Zhang <[email protected]>
Support TPL on the P1022DS.
The TPL's size is sizeable, the maximum size must not exceed the size of L2 SRAM. It initializes the DDR through SPD code, and copys final uboot image to DDR. So there are three stage uboot images:
* spl_boot, 4KB size, pad to 128K byte.
* tpl_boot, 88K size, pad to 128K size. The env variables are copied to L2 SRAM, so that ddr SPD code can get the interleaving mode setting in env. It loads final uboot image from offset 256KB.
* final uboot image, size is variable depends on the functions enabled.
This patch is on top of the patch:
nand: tpl : introduce the TPL based on the SPL
---
Compared with the original version, Changed as below:
1. Split from "powerpc/p1022ds: nand: introduce the TPL based on the SPL".
2. No change.
3. No change.
4. No change.
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 4 + board/freescale/p1022ds/Makefile | 3 + board/freescale/p1022ds/spl_minimal.c | 57 ++--------------- board/freescale/p1022ds/tlb.c | 4 +- board/freescale/p1022ds/tpl.c | 102 +++++++++++++++++++++++++++++++ drivers/mtd/nand/fsl_elbc_spl.c | 18 +++++- include/configs/P1022DS.h | 79 ++++++++++++++++++------ 7 files changed, 196 insertions(+), 71 deletions(-) create mode 100644 board/freescale/p1022ds/tpl.c
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +4 -0
@@ -32,7 +32,11 @@ PHDRS #endif SECTIONS { +#ifdef CONFIG_SPL_BUILD . = CONFIG_SPL_TEXT_BASE; +#else + . = CONFIG_TPL_TEXT_BASE; +#endif .text : { *(.text*) }
board/freescale/p1022ds/Makefile +3 -0
@@ -27,6 +27,9 @@ else ifdef CONFIG_SPL_BUILD COBJS-y += spl.o endif +ifdef CONFIG_TPL_BUILD +COBJS-y += tpl.o +endif COBJS-y += $(BOARD).o COBJS-y += ddr.o COBJS-y += law.o
board/freescale/p1022ds/spl_minimal.c +7 -50
83 lines not on this page · raw message
board/freescale/p1022ds/tlb.c +2 -2
@@ -41,7 +41,7 @@ struct fsl_e_tlb_entry tlb_table[] = { MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, 0, 1, BOOKE_PAGESZ_1M, 1), -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_TPL_BUILD )/* W**G* - Flash/promjet, localbus */ /* This will be changed to *I*G* after relocation to RAM. */ SET_TLB_ENTRY(1, CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FLASH_BASE_PHYS,
@@ -75,7 +75,7 @@ struct fsl_e_tlb_entry tlb_table[] = { 0, 7, BOOKE_PAGESZ_4K, 1),#if defined(CONFIG_SYS_RAMBOOT ) || \ - (defined(CONFIG_SPL ) && !defined(CONFIG_SPL_COMMON_INIT_DDR )) + (defined(CONFIG_SPL ) && !defined(CONFIG_COMMON_INIT_DDR ))/* **** - eSDHC/eSPI/NAND boot */ SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE, CONFIG_SYS_DDR_SDRAM_BASE, MAS3_SX|MAS3_SW|MAS3_SR, 0,
board/freescale/p1022ds/tpl.c new file +102 -0
102 lines not on this page · raw message
drivers/mtd/nand/fsl_elbc_spl.c +17 -1
@@ -50,7 +50,7 @@ static void nand_wait(void)#ifdef CONFIG_SPL_BUILD static int nand_load_image(uint32_t offs, unsigned int uboot_size, void *vdst)#else -int nand_load_image(uint32_t offs, unsigned int uboot_size, void *vdst) +int nand_load(uint32_t offs, unsigned int uboot_size, void *vdst)#endif {fsl_lbc_t *regs =LBC_BASE_ADDR ;
@@ -141,17 +141,33 @@ void nand_boot(void)/* * Load U-Boot image from NAND into RAM */ +#ifdef CONFIG_SPL_BUILD nand_load_image (CONFIG_SYS_NAND_U_BOOT_OFFS ,CONFIG_SYS_NAND_U_BOOT_SIZE , (void *)CONFIG_SYS_NAND_U_BOOT_DST ); +#else +nand_load (CONFIG_SYS_NAND_U_BOOT_OFFS , +CONFIG_SYS_NAND_U_BOOT_SIZE , + (void *)CONFIG_SYS_NAND_U_BOOT_DST ); +#endif #ifdef CONFIG_NAND_ENV_DST +#ifdef CONFIG_SPL_BUILD nand_load_image (CONFIG_ENV_OFFSET ,CONFIG_ENV_SIZE , (void *)CONFIG_NAND_ENV_DST ); +#else +nand_load (CONFIG_ENV_OFFSET ,CONFIG_ENV_SIZE , + (void *)CONFIG_NAND_ENV_DST ); +#endif #ifdef CONFIG_ENV_OFFSET_REDUND +#ifdef CONFIG_SPL_BUILD nand_load_image (CONFIG_ENV_OFFSET_REDUND ,CONFIG_ENV_SIZE , (void *)CONFIG_NAND_ENV_DST +CONFIG_ENV_SIZE ); +#else +nand_load (CONFIG_ENV_OFFSET_REDUND ,CONFIG_ENV_SIZE , + (void *)CONFIG_NAND_ENV_DST +CONFIG_ENV_SIZE ); +#endif #endif #endif
include/configs/P1022DS.h +61 -18
139 lines not on this page · raw message
Signature · 1 line
1.7.0.4
Wolfgang Denk
NAKPATCH v5 1/10 powerpc/mpc85xx: support application without resetvec segment in the linker script
In reply to ying.zhang at freescale.comDear ying.zhang at freescale.com,
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds line 2
Quoted 10 lines · In message <[email protected]> you…
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +1
-4@@ -1,8 +1,5 @@ /* - * (C) Copyright 2006 - * Wolfgang Denk, DENX Software Engineering, wd at denx.de - * - * Copyright 2009 Freescale Semiconductor, Inc. + * Copyright 2013 Freescale Semiconductor, Inc.
Please never, ever modify existing copyright headers in any such way!!
You MUST keeep existing entries (unless they are clearly wrong).
NAK!
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I perceive a possibility of an immediate chronological sequence of
events which includes a violence.
- Terry Pratchett, _The Dark Side of the Sun_PATCH v5 1/10 powerpc/mpc85xx: support application without resetvec segment in the linker script
Quoted 16 lines · Wolfgang Denk
Dear ying.zhang at freescale.com,
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds line 2
Quoted 10 lines · In message <[email protected]> you…
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +1
-4@@ -1,8 +1,5 @@ /* - * (C) Copyright 2006 - * Wolfgang Denk, DENX Software Engineering, wd at denx.de - * - * Copyright 2009 Freescale Semiconductor, Inc. + * Copyright 2013 Freescale Semiconductor, Inc.Please never, ever modify existing copyright headers in any such way!!
Quoted 5 lines
You MUST keeep existing entries (unless they are clearly wrong).
NAK!
Please address this NAK and make sure it's not also happening in the rest of the series. Thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130627/e76148ce/attachment.pgp>
PATCH v5 1/10 powerpc/mpc85xx: support application without resetvec segment in the linker script
Quoted 18 lines · Tom Rini
Quoted 3 lines · Wolfgang Denk
Dear ying.zhang at freescale.com,
In message <[email protected]>
Quoted 13 lines · you
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds line 2
Quoted 10 lines
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds +1
-4@@ -1,8 +1,5 @@ /* - * (C) Copyright 2006 - * Wolfgang Denk, DENX Software Engineering, wd at denx.de - * - * Copyright 2009 Freescale Semiconductor, Inc. + * Copyright 2013 Freescale Semiconductor, Inc.Please never, ever modify existing copyright headers in any such way!!
Quoted 9 lines
Quoted 5 lines
You MUST keeep existing entries (unless they are clearly wrong).
NAK!
Please address this NAK and make sure it's not also happening in the rest of the series. Thanks!
Unfortunately, this went in with the last batch:
commit 5df572f0131cf5e0abd8ce4e8f57841b790c40d4
Author: Ying Zhang <[email protected]> Date: Mon May 20 14:07:23 2013 +0800
powerpc/mpc85xx: support application without resetvec segment in the
linker
Fortunately, while the change history on this patch says "No change", the copyright screwup WAS a change, and does NOT exist in the committed version of the patch.
Sometimes two wrongs do make a right. :)
Andy