From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 7/7 v6] powerpc: p1022ds: support TPL on the P1022DS
Date: Wed, 26 Jun 2013 17:38:36 -0500 [thread overview]
Message-ID: <1372286316.8183.45@snotra> (raw)
In-Reply-To: <1372231112-25185-7-git-send-email-ying.zhang@freescale.com> (from ying.zhang@freescale.com on Wed Jun 26 02:18:32 2013)
On 06/26/2013 02:18:32 AM, ying.zhang at freescale.com wrote:
> diff --git a/Makefile b/Makefile
> index 0513e4d..a3c7282 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -895,7 +895,7 @@ clobber: tidy
> @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)tpl/u-boot-spl.lds
Huh?
> @rm -f $(obj)MLO MLO.byteswap
> @rm -f $(obj)SPL
> @rm -f $(obj)tools/xway-swap-bytes
> @@ -906,6 +906,7 @@ clobber: tidy
> @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type
> l -print | xargs rm -f
> @rm -f $(obj)dts/*.tmp
> @rm -f $(obj)spl/u-boot-spl{,-pad}.ais
> + @rm -f $(obj)tpl/u-boot-tpl{,-pad}.ais
Is there ever a TPL that ends in .ais?
> diff --git a/board/freescale/p1022ds/tpl.c
> b/board/freescale/p1022ds/tpl.c
> new file mode 100644
> index 0000000..628b9e8
> --- /dev/null
> +++ b/board/freescale/p1022ds/tpl.c
> @@ -0,0 +1,102 @@
> +/*
> + * Copyright 2013 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
> + * 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>
> +#include <ns16550.h>
> +#include <malloc.h>
> +#include <i2c.h>
> +#include <nand.h>
> +#include "../common/ngpixis.h"
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static const u32 sysclk_tbl[] = {
> + 66666000, 7499900, 83332500, 8999900,
> + 99999000, 11111000, 12499800, 13333200
> +};
> +
> +ulong get_effective_memsize(void)
> +{
> + return CONFIG_SYS_L2_SIZE;
> +}
> +
> +void board_init_f(ulong bootflag)
> +{
> + int px_spd;
> + u32 plat_ratio, sys_clk, bus_clk;
> + ccsr_gur_t *gur = (void *)CONFIG_SYS_MPC85xx_GUTS_ADDR;
> +
> + console_init_f();
> + /* Set pmuxcr to allow both i2c1 and i2c2 */
> + setbits_be32(&gur->pmuxcr, in_be32(&gur->pmuxcr) | 0x1000);
> + setbits_be32(&gur->pmuxcr,
> + in_be32(&gur->pmuxcr) | MPC85xx_PMUXCR_SD_DATA);
> +
> + /* Read back the register to synchronize the write. */
> + in_be32(&gur->pmuxcr);
> +
> + /* initialize selected port with appropriate baud rate */
> + px_spd = in_8((unsigned char *)(PIXIS_BASE + PIXIS_SPD));
> + sys_clk = sysclk_tbl[px_spd & PIXIS_SPD_SYSCLK_MASK];
> + plat_ratio = in_be32(&gur->porpllsr) &
> MPC85xx_PORPLLSR_PLAT_RATIO;
> + bus_clk = sys_clk * plat_ratio / 2;
> +
> + NS16550_init((NS16550_t)CONFIG_SYS_NS16550_COM1,
> + bus_clk / 16 / CONFIG_BAUDRATE);
> + /* copy code to RAM and jump to it - this should not return */
> + /* NOTE - code has to be copied out of NAND buffer before
> + * other blocks can be read.
> + */
> + relocate_code(CONFIG_SYS_NAND_U_BOOT_RELOC_SP, 0,
> + CONFIG_SYS_NAND_U_BOOT_RELOC);
> +}
> +
> +void board_init_r(gd_t *gd, ulong dest_addr)
> +{
> + /* Pointer is writable since we allocated a register for it */
> + gd = (gd_t *)CONFIG_SYS_GD_ADDR;
> + bd_t *bd;
> +
> + memset(gd, 0, sizeof(gd_t));
> + bd = (bd_t *)(CONFIG_SYS_GD_ADDR + sizeof(gd_t));
> + memset(bd, 0, sizeof(bd_t));
> + gd->bd = bd;
> + bd->bi_memstart = CONFIG_SYS_INIT_L2_ADDR;
> + bd->bi_memsize = CONFIG_SYS_L2_SIZE;
> +
> + probecpu();
> + get_clocks();
> + mem_malloc_init(CONFIG_SYS_RELOC_MALLOC_ADDR, \
> + CONFIG_SYS_RELOC_MALLOC_SIZE);
> + /* relocate environment function pointers etc. */
> + nand_load(CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE,
> + (uchar *)CONFIG_ENV_ADDR);
> +
> + gd->env_addr = (ulong)(CONFIG_ENV_ADDR);
> + gd->env_valid = 1;
> +
> + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
> +
> + gd->ram_size = initdram(0);
> + puts("Tertiary program loader running in sram...");
> +
> + nand_boot();
> +}
This looks a lot like board/freescale/p1022ds/spl.c. Find a way to
share them.
Don't hardcode that it's NAND boot.
> diff --git a/drivers/mtd/nand/fsl_elbc_spl.c
> b/drivers/mtd/nand/fsl_elbc_spl.c
> index ab208fd..8924e2d 100644
> --- a/drivers/mtd/nand/fsl_elbc_spl.c
> +++ b/drivers/mtd/nand/fsl_elbc_spl.c
> @@ -50,7 +50,7 @@ static void nand_wait(void)
> #ifdef CONFIG_SPL_BUILD
> static
> #endif
> -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)
> {
> fsl_lbc_t *regs = LBC_BASE_ADDR;
> uchar *buf = (uchar *)CONFIG_SYS_NAND_BASE;
> @@ -140,16 +140,16 @@ void nand_boot(void)
> /*
> * Load U-Boot image from NAND into RAM
> */
> - nand_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
> + nand_load(CONFIG_SYS_NAND_U_BOOT_OFFS,
> CONFIG_SYS_NAND_U_BOOT_SIZE,
> (void *)CONFIG_SYS_NAND_U_BOOT_DST);
>
> #ifdef CONFIG_NAND_ENV_DST
> - nand_load_image(CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE,
> + nand_load(CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE,
> (void *)CONFIG_NAND_ENV_DST);
>
> #ifdef CONFIG_ENV_OFFSET_REDUND
> - nand_load_image(CONFIG_ENV_OFFSET_REDUND, CONFIG_ENV_SIZE,
> + nand_load(CONFIG_ENV_OFFSET_REDUND, CONFIG_ENV_SIZE,
> (void *)CONFIG_NAND_ENV_DST + CONFIG_ENV_SIZE);
> #endif
> #endif
Why?
-Scott
prev parent reply other threads:[~2013-06-26 22:38 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-26 7:18 [U-Boot] [PATCH 1/7 v6] powerpc: deleted unused symbol CONFIG_SPL_NAND_MINIMAL and enabled some functionality for common SPL ying.zhang at freescale.com
2013-06-26 7:18 ` [U-Boot] [PATCH 2/7 v6] spl: env_common.c: add new symbol CONFIG_SPL_ENV_IMPORT to contain function env_import ying.zhang at freescale.com
2013-06-26 7:18 ` [U-Boot] [PATCH 3/7 v6] powerpc/p1022ds: boot from SD Card with SPL ying.zhang at freescale.com
2013-06-26 7:18 ` [U-Boot] [PATCH 4/7 v6] SPL : spi flash : support to start from eSPI " ying.zhang at freescale.com
2013-06-26 7:18 ` [U-Boot] [PATCH 5/7 v6] powerpc : p1022ds : enable p1022ds " ying.zhang at freescale.com
2013-06-26 7:18 ` [U-Boot] [PATCH 6/7 v6] nand: tpl : introduce the TPL based on the SPL ying.zhang at freescale.com
2013-06-26 22:33 ` Scott Wood
2013-06-28 7:57 ` Zhang Ying-B40530
2013-06-28 19:39 ` Scott Wood
2013-07-01 8:48 ` Zhang Ying-B40530
2013-07-01 16:57 ` Scott Wood
2013-06-26 7:18 ` [U-Boot] [PATCH 7/7 v6] powerpc: p1022ds: support TPL on the P1022DS ying.zhang at freescale.com
2013-06-26 22:38 ` Scott Wood [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1372286316.8183.45@snotra \
--to=scottwood@freescale.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.