[U-Boot] [U-Boot, v1, 3/3] ARM: omap: merge GPMC initialization code for all platform

Ash Charles ash at gumstix.com
Fri May 30 23:59:19 CEST 2014


Hi,

I'm actually seeing some breakage from this commit
(a0a37183bd75e74608bc78c8d0e2a34454f95a91).  When booting the DuoVero
board (no NAND/NOR/ONENAND but a network card on GPMC), it hangs as it
enters the kernel.

These lines in gpmc_init() in arch/arm/cpu/armv7/omap-common/mem-common.c
...
        writel(0, &gpmc_cfg->cs[0].config7);
        sdelay(1000);
        /* enable chip-select specific configurations */
        enable_gpmc_cs_config(gpmc_regs, &gpmc_cfg->cs[0], base, size);
...
seem to be the source of the issue.  Even though we have nothing
connected on CS0, the last line of enable_gpmc_cs_config() enables the
interface despite it being disabled right before in writel(0,
&gpmc_cfg->cs[0].config7);

--Ash

On Mon, May 26, 2014 at 9:47 PM, Gupta, Pekon <pekon at ti.com> wrote:
>>From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Rini, Tom
>>On Thu, May 08, 2014 at 09:43:47PM +0530, pekon gupta wrote:
>>
>>> GPMC controller on TI's OMAP SoC is general purpose controller to interface
>>> with different types of external devices like;
>>>  - parallel NOR flash
>>>  - parallel NAND flash
>>>  - OneNand flash
>>>  - SDR RAM
>>>  - Ethernet Devices like LAN9220
>>>
>>> Though GPMC configurations may be different for each platform depending on
>>> clock-frequency and external device interfacing with controller. But
>>> initialization sequence remains common across all platfoms.
>>>
>>> Thus this patch merges gpmc_init() scattered in different arch-xx/mem.c
>>> files into single omap-common/mem-common.c
>>>
>>> However, actual platforms specific register config values are still sourced
>>> from corresponding platform specific headers like;
>>>  AM33xx: arch/arm/include/asm/arch-am33xx/mem.h
>>>  OMAP3:  arch/arm/include/asm/arch-omap3/mem.h
>>>  OMAP4:  arch/arm/include/asm/arch-omap4/mem.h
>>>  OMAP4:  arch/arm/include/asm/arch-omap5/mem.h
>>>
>>> Also, CONFIG_xx passed by board-profile decide config for which set of macros
>>> need to be used for initialization
>>>  CONFIG_NAND:    initialize GPMC for NAND device
>>>  CONFIG_NOR:     initialize GPMC for NOR device
>>>  CONFIG_ONENAND: initialize GPMC for ONENAND device
>>>
>>> Signed-off-by: Pekon Gupta <pekon at ti.com>
>>
>>After adding GPMC_SIZE_256M to omap3/mem.h, applied to u-boot-ti/master,
>>thanks!
>>
>>And note that git detect renames got a bit too agressive here so I had
>>to apply it kinda by hand, but I think I did everything right.
>>
> Thanks much .. I'll review the changes.
>
> with regards, pekon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list