All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 5/5] [PATCH 5/5] Add config file for the apf27
Date: Sat, 07 Jul 2012 19:31:52 +0200	[thread overview]
Message-ID: <4FF87288.8020802@denx.de> (raw)
In-Reply-To: <1340915772-30493-5-git-send-email-tremyfr@yahoo.fr>

On 28/06/2012 22:36, Philippe Reynes wrote:
> Signed-off-by: Philippe Reynes <tremyfr@yahoo.fr>
> ---

Hi Philippe,

>  include/configs/apf27.h |  916 +++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 916 insertions(+), 0 deletions(-)
>  create mode 100644 include/configs/apf27.h
> 
> diff --git a/include/configs/apf27.h b/include/configs/apf27.h
> new file mode 100644

Really this patch must be merged with patch 2/5: "Add support for the
armadeus APF27". They belong together, and it maintains the tree bisectable.

> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#define CONFIG_VERSION_VARIABLE
> +#define CONFIG_ENV_VERSION	"3.1"
> +#define CONFIG_IDENT_STRING	" apf27 patch 3.6"
> +#define CONFIG_BOARD_NAME	apf27
> +
> +/*
> + * SoC configurations
> + */
> +#define CONFIG_ARM926EJS		/* this is an ARM926EJS CPU */
> +#define CONFIG_MX27			/* in a Freescale i.MX27 Chip */
> +#define CONFIG_MACH_TYPE	1698	/* APF27 */
> +
> +/*
> + * Enable the call to miscellaneous platform dependent initialization.
> + */
> +#define CONFIG_SYS_NO_FLASH	/* to be define before <config_cmd_default.h> */
> +#define CONFIG_SYS_DCACHE_OFF
> +#define CONFIG_MISC_INIT_R
> +
> +/*
> + * Board display option
> + */
> +#define CONFIG_DISPLAY_BOARDINFO
> +#define CONFIG_DISPLAY_CPUINFO
> +
> +/*
> + * SPL
> + */
> +#define CONFIG_NAND_U_BOOT
> +/* Copy SPL+U-Boot here	     */
> +#define CONFIG_SYS_NAND_U_BOOT_DST	CONFIG_SYS_LOAD_ADDR
> +/* Size is the partion size  */
> +#define CONFIG_SYS_NAND_U_BOOT_SIZE	CONFIG_SYS_MONITOR_LEN

See my comment about the SPL patch.

> +
> +#define PHYS_SDRAM_1			0xA0000000
> +#define PHYS_SDRAM_2			0xB0000000
> +#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
> +#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (512<<10))
> +#define CONFIG_SYS_GBL_DATA_SIZE	256		/* Initial data */

We use a macro for CONFIG_SYS_GBL_DATA_SIZE. Is it not suitable for your
needs ?

> +#define CONFIG_SYS_TEXT_BASE	0xA1000000
> +
> +/*
> + * FLASH organization
> + */
> +/*#define	CONFIG_SYS_MONITOR_BASE	0xAFF00000*/

Do not let dead code

> +#define	CONFIG_FIRMWARE_OFFSET		0x00200000
> +#define	CONFIG_KERNEL_OFFSET		0x00300000
> +#define	CONFIG_ROOTFS_OFFSET		0x00800000
> +
> +#define CONFIG_MTDMAP			"mxc_nand.0"
> +#define MTDIDS_DEFAULT			"nand0=" CONFIG_MTDMAP
> +#define MTDPARTS_DEFAULT	"mtdparts=" CONFIG_MTDMAP \
> +				":1M(u-boot)ro," \
> +				"512K(env)," \
> +				"512K(env2)," \
> +				"512K(firmware)," \
> +				"512K(dtb)," \
> +				"5M(kernel)," \
> +				"-(rootfs)"
> +
> +/*
> + * U-Boot general configurations
> + */
> +#define CONFIG_SYS_LONGHELP
> +#define CONFIG_SYS_PROMPT		"BIOS> "	/* prompt string */
> +#define CONFIG_SYS_CBSIZE		2048		/* console I/O buffer */
> +#define CONFIG_SYS_PBSIZE		\
> +				(CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)
> +						/* Print buffer size */
> +#define CONFIG_SYS_MAXARGS		16		/* max command args */
> +#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
> +						/* Boot argument buffer size */
> +#define CONFIG_AUTO_COMPLETE
> +#define CONFIG_CMDLINE_EDITING
> +#define CONFIG_SYS_HUSH_PARSER			/* enable the "hush" shell */
> +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "	/* secondary prompt string */
> +
> +/*
> + * Boot Linux
> + */
> +#define CONFIG_CMDLINE_TAG		/* send commandline to Kernel	*/
> +#define CONFIG_SETUP_MEMORY_TAGS	/* send memory definition to kernel */
> +#define CONFIG_INITRD_TAG		/* send initrd params	*/
> +
> +/* #define CONFIG_REVISION_TAG */

Drop also this line - check in the whole file for these occurrencies


> +#if 0
> +#define CONFIG_SYS_FPGA_IS_PROTO /* to be defined with apf27 board prototype */
> +#endif

drop also this dead code

> +#ifndef CONFIG_MX27_CLK26
> +#if (CONFIG_MX27_CLK32 == 32000)
> +#define CONFIG_SYS_MPCTL0_VAL		0x00211803	/* 398.998 MHz */
> +#define CONFIG_SYS_MPCTL1_VAL		0
> +#define CONFIG_MPLL_FREQ	399
> +#else /* CONFIG_MX27_CLK32 == 32768*/
> +#define CONFIG_SYS_MPCTL0_VAL		0x01EF15D5	/* 399.000 MHz */
> +#define CONFIG_SYS_MPCTL1_VAL		0
> +#define CONFIG_MPLL_FREQ	399
> +#endif /* CONFIG_MX27_CLK32 */
> +#else /* CONFIG_MX27_CLK26 in use*/
> +#define CONFIG_SYS_MPCTL0_VAL		0x00331C23	/* 399.000 MHz */
> +#define CONFIG_SYS_MPCTL1_VAL		0
> +#define CONFIG_MPLL_FREQ	399
> +#endif /* CONFIG_MX27_CLK26 */

Do you have several hardware version of the same board or which is the
reason for that ?

> +/* ARM bus frequency (have to be a CONFIG_MPLL_FREQ ratio) */
> +#define CONFIG_ARM_FREQ		399	/* up to 400 MHz */
> +
> +/* external bus frequency (have to be a CONFIG_SYS_CLK_FREQ ratio) */
> +#define CONFIG_HCLK_FREQ	133	/* (CONFIG_SYS_CLK_FREQ/2) */
> +
> +#define CONFIG_PERIF1_FREQ	16	/* 16.625 MHz UART, GPT, PWM*/
> +#define CONFIG_PERIF2_FREQ	33	/* 33.25 MHz CSPI and SDHC */
> +#define CONFIG_PERIF3_FREQ	33	/* 33.25 MHz LCD*/
> +#define CONFIG_PERIF4_FREQ	33	/* 33.25 MHz CSI*/
> +#define CONFIG_SSI1_FREQ	66	/* 66.50 MHz SSI1*/
> +#define CONFIG_SSI2_FREQ	66	/* 66.50 MHz SSI2*/
> +#define CONFIG_MSHC_FREQ	66	/* 66.50 MHz MSHC*/
> +#define CONFIG_H264_FREQ	66	/* 66.50 MHz H264*/
> +#define CONFIG_CLK0_DIV      3  /* Divide CLK0 by 4 */
> +#define CONFIG_CLK0_EN       1  /* CLK0 enabled */

Really there is another way to get the peripheral clocks for the i.MX.
Each SOC implements or should implement mxc_get_clock(), passing as
parameter the peripheral you need to know the clock.

> +/*
> + * SDRAM
> + */
> +#if (CONFIG_SYS_SDRAM_MBYTE_SYZE == 64) /* micron MT46H16M32LF -6 */
> +/* micron 64MB */
> +#define PHYS_SDRAM_1_SIZE			0x04000000 /* 64 MB */
> +#define PHYS_SDRAM_2_SIZE			0x04000000 /* 64 MB */
> +#define CONFIG_SYS_SDRAM_NUM_COL		9  /* 8, 9, 10 or 11
> +						      column address bits */
> +#define CONFIG_SYS_SDRAM_NUM_ROW		13 /* 11, 12 or 13
> +						      row address bits */
> +#define CONFIG_SYS_SDRAM_REFRESH		3  /* 0=OFF 1=2048
> +						      2=4096 3=8192 refresh */
> +#define CONFIG_SYS_SDRAM_EXIT_PWD		25 /* ns exit power
> +						      down delay */
> +#define CONFIG_SYS_SDRAM_W2R_DELAY		1  /* write to read
> +						      cycle delay > 0 */
> +#define CONFIG_SYS_SDRAM_ROW_PRECHARGE_DELAY	18 /* ns */
> +#define CONFIG_SYS_SDRAM_TMRD_DELAY		2  /* Load mode register
> +						      cycle delay 1..4 */
> +#define CONFIG_SYS_SDRAM_TWR_DELAY		1  /* LPDDR: 0=2ck 1=3ck;
> +						      SDRAM: 0=1ck 1=2ck*/
> +#define CONFIG_SYS_SDRAM_RAS_DELAY		42 /* ns ACTIVE-to-PRECHARGE
> +						      delay */
> +#define CONFIG_SYS_SDRAM_RRD_DELAY		12 /* ns ACTIVE-to-ACTIVE
> +						      delay */
> +#define CONFIG_SYS_SDRAM_RCD_DELAY		18 /* ns Row to Column delay */
> +#define CONFIG_SYS_SDRAM_RC_DELAY		70 /* ns Row cycle delay (tRFC
> +						      refresh to command) */
> +#define CONFIG_SYS_SDRAM_CLOCK_CYCLE_CL_1	0 /* ns clock cycle time
> +						     estimated fo CL=1
> +						     0=force 3 for lpddr */
> +#define CONFIG_SYS_SDRAM_PARTIAL_ARRAY_SR	0  /* 0=full 1=half 2=quater
> +						      3=Eighth 4=Sixteenth */
> +#define CONFIG_SYS_SDRAM_DRIVE_STRENGH		0  /* 0=Full-strength 1=half
> +						      2=quater 3=Eighth */
> +#define CONFIG_SYS_SDRAM_BURST_LENGTH		3  /* 2^N BYTES (N=0..3) */
> +#define CONFIG_SYS_SDRAM_SINGLE_ACCESS		0  /* 1= single access;
> +						      0 = Burst mode */
> +#endif

Why do these config belong to the config file ? You introduce several
new CONFIG_SYS, and they must be documented. Anyway, you do not need it,
because I assume all these values are used only in the board directory,
not generally for other subsystem of u-boot.


> +
> +/* FPGA specific settings */
> +/* CLKO */
> +#define CONFIG_SYS_CCSR_VAL 0x00000305
> +/* drive strength CLKO set to 2*/
> +#define CONFIG_SYS_DSCR10_VAL 0x00020000
> +/* drive strength A1..A12 set to 2*/
> +#define CONFIG_SYS_DSCR3_VAL 0x02AAAAA8
> +/* drive strength ctrl*/
> +#define CONFIG_SYS_DSCR7_VAL 0x00020880
> +/* drive strength data*/
> +#define CONFIG_SYS_DSCR2_VAL 0xAAAAAAAA

Maybe you should move also FPGA related values to the fpga file - and as
I said, a CONFIG_SYS_ define has meaning for the whole code across
architectures, and this is not the case. The same comment for the GPIOs
and so on.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

      reply	other threads:[~2012-07-07 17:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-28 20:36 [U-Boot] [PATCH 1/5] [PATCH 1/5] Add missing constant to mx27 Philippe Reynes
2012-06-28 20:36 ` [U-Boot] [PATCH 2/5] [PATCH 2/5] Add support for the armadeus APF27 board Philippe Reynes
2012-06-28 23:06   ` Fabio Estevam
2012-06-29  1:16     ` Eric Jarrige
2012-07-07 18:03   ` Stefano Babic
2012-06-28 20:36 ` [U-Boot] [PATCH 3/5] [PATCH 3/5] Add nand_spl support for the apf27 Philippe Reynes
2012-06-28 22:18   ` Scott Wood
2012-07-07 17:34   ` Stefano Babic
2012-06-28 20:36 ` [U-Boot] [PATCH 4/5] [PATCH 4/5] Add FPGA support for the apf27 board Philippe Reynes
2012-07-07 17:43   ` Stefano Babic
2012-06-28 20:36 ` [U-Boot] [PATCH 5/5] [PATCH 5/5] Add config file for the apf27 Philippe Reynes
2012-07-07 17:31   ` Stefano Babic [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=4FF87288.8020802@denx.de \
    --to=sbabic@denx.de \
    --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.