[U-Boot] [PATCH 11/13 v5] ARM: OMAP3: Add EVM board

Dirk Behme dirk.behme at googlemail.com
Mon Nov 10 20:28:14 CET 2008


Dear Wolfgang,

Wolfgang Denk wrote:
> Dear Jean-Christophe PLAGNIOL-VILLARD,
> 
> In message <20081109150321.GF25307 at game.jcrosoft.org> you wrote:
> 
>>>+	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
>>>+#endif
>>>+
>>>+#if defined(CONFIG_CMD_NET)
>>>+	setup_net_chip();
>>>+#endif
>>>+
>>>+	return 0;
>>>+}
>>>+
>>>+/******************************************************************************
>>>+ * Routine: set_muxconf_regs
>>>+ * Description: Setting up the configuration Mux registers specific to the
>>>+ *              hardware. Many pins need to be moved from protect to primary
>>>+ *              mode.
>>>+ *****************************************************************************/
>>>+void set_muxconf_regs(void)
>>>+{
>>>+	MUX_EVM();
>>>+}
>>>+
>>>+/******************************************************************************
>>>+ * Routine: setup_net_chip
>>>+ * Description: Setting up the configuration GPMC registers specific to the
>>>+ *              Ethernet hardware. Pin Muxing for the SMC9118 is initialized
>>>+ *              here.
>>>+ *****************************************************************************/
>>>+static int setup_net_chip(void)
>>>+{
>>
>>in this function please add some blank line to make the code more readable
>>
>>>+	int i = 0;
>>>+
>>>+	/* Configure GPMC registers */
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0150)) = 0x00001000;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0154)) = 0x001e1e01;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0158)) = 0x00080300;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x015C)) = 0x1c091c09;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0160)) = 0x04181f1f;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0164)) = 0x00000FCF;
>>>+	(*(volatile int *)(OMAP34XX_GPMC_BASE + 0x0168)) = 0x00000f6c;
>>>+
>>>+	/* Configure PIN MUX registers */
>>>+	/* Enable GPMC Pin Mux Registers */
>>>+	/* Enable GPMC_CLK Pin in CONTROL_PADCONF_gpmc_ncs7 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xBC)) |= 0x00180000;
>>>+	/* Enable CS5 Pin in CONTROL_PADCONF_gpmc_ncs5 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xB8)) |= 0x00000018;
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xB8)) &= 0xFFFFFFF8;
>>>+	/* Enable offmode for nwe in CONTROL_PADCONF_GPMC_NWE register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xC4)) |= 0x00000F00;
>>>+	/* En off mode for noe and ale in CONTROL_PADCONF_GPMC_NADV_ALE reg */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xC0)) |= 0x0E000E00;
>>>+	/* Enable gpmc_nbe0_cle in CONTROL_PADCONF_GPMC_NWE register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xC4)) |= 0x00180000;
>>>+
>>>+	/* Enable gpmc_nbe1 in CONTROL_PADCONF_GPMC_NBE1 register and
>>>+	configuring the mux mode to 0 */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xC8)) |= 0x00000018;
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xC8)) &= 0xFFFFFFF8;
>>>+	/* Enable d15 in CONTROL_PADCONF_GPMC_D15 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xAC)) |= 0x00000018;
>>>+	/* Enable d14 - d13 in CONTROL_PADCONF_GPMC_D13 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xA8)) |= 0x00180018;
>>>+	/* Enable d12 - d11 in CONTROL_PADCONF_GPMC_D11 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xA4)) |= 0x00180018;
>>>+	/* Enable d10 - d9 in CONTROL_PADCONF_GPMC_D9 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0xA0)) |= 0x00180018;
>>>+	/* Enable d8 - d7 in CONTROL_PADCONF_GPMC_D7 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0x9C)) |= 0x00180018;
>>>+	/* Enable d6 - d5 in CONTROL_PADCONF_GPMC_D5 register */
>>>+	(*(volatile int *)(OMAP34XX_CTRL_BASE + 0x98)) |= 0x00180018;
> 
> 
> And please use accessor functions / macros to access the registers.
> Access through volatile pointers is considered a Bad Thing (TM).

Sorry for not mentioning this earlier, but you don't have to comment on

a) readx/writex accessor functions / macros
b) hardcoded values vs. speaking macros

These are known issues of OMAP3 patch set I will fix step by step. 
Once we send the "final" OMAP3 patch set to the mailing list, if I 
missed something, then you are welcome to comment on it, though ;)

Thanks for your review and best regards

Dirk


More information about the U-Boot mailing list