
Hi Ash,
From: ashcharles@gmail.com 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);
Sorry seeing this bit late. Were you able to root cause the issue ? All Ethernet related GPMC configurations are defined by following macros File: $U-BOOT/arch/arm/include/asm/arch-omap3/mem.h #define NET_GPMC_CONFIG1 0x00001000 #define NET_GPMC_CONFIG2 0x001e1e01 #define NET_GPMC_CONFIG3 0x00080300 #define NET_GPMC_CONFIG4 0x1c091c09 #define NET_GPMC_CONFIG5 0x04181f1f #define NET_GPMC_CONFIG6 0x00000FCF #define NET_GPMC_CONFIG7 0x00000f6c OR /* GPMC CS configuration for an SMSC LAN9221 ethernet controller */ #define NET_LAN9221_GPMC_CONFIG1 0x00001000 #define NET_LAN9221_GPMC_CONFIG2 0x00060700 #define NET_LAN9221_GPMC_CONFIG3 0x00020201 #define NET_LAN9221_GPMC_CONFIG4 0x06000700 #define NET_LAN9221_GPMC_CONFIG5 0x0006090A #define NET_LAN9221_GPMC_CONFIG6 0x87030000 #define NET_LAN9221_GPMC_CONFIG7 0x00000f6c
I havn't touched these values, except for moving some of them from one header-file to other.
Also, the change in u-boot, should not affect the kernel. That means kernel's GPMC driver was depending on some pre-configured value, which is wrong. There were couple of fixes for SMSC controller pushed in 3.16 kernel, Are following in your tree ? fb677ef tony@atomide.com ARM: OMAP2+: Fix GPMC remap for devices using an offset efe8072 tony@atomide.com ARM: OMAP2+: Fix oops for GPMC free
with regards, pekon