GPIO conflict with kernel root?

117 views
Skip to first unread message

Chao You

unread,
Mar 16, 2010, 2:07:00 AM3/16/10
to beagl...@googlegroups.com
I followed the PinMux wiki to enable the GPIOs, i.e. GPIO-168.
http://elinux.org/BeagleBoardPinMux#U-Boot

it seems the gpio-168 is set to M4 in the default u-boot config.
According to the previous link, in the kernel setup, the
CONFIG_OMAP_MUX has to be enable. But when the CONFIG_OMAP_MUX is
enabled, my kernel won't find the root file system anymore. Error
message is shown at the bottom.

Another question is related to the mux.c file. The gpio-168 is AF15.
The default mux.c file is set to MODE0. Without enable the OMAP_MUX,
if I change mux.c to MODE4, will that enable the gpio-168?

Thanks a lot.

MUX_CFG_34XX("AF15_34XX_I2C2_SCL", 0x1be,
OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)


Error message:

[ 317.434753] fbcvt: 1024x768@60: CVT Name - .786M3-R
[ 317.470184] Console: switching to colour frame buffer device 128x48
[ 317.490936] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000
[ 317.497863] clock: new_div = 9, new_rate = 48000000
[ 317.511779] Waiting for root device /dev/mmcblk0p2...
[ 318.064971] mmc0: new high speed SDHC card at address 1234
[ 318.071166] mmcblk0: mmc0:1234 SA08G 7.40 GiB (ro)
[ 318.076293] mmcblk0: p1 p2
[ 318.166931] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)
[ 318.174041] Please append a correct "root=" boot option; here are
the available partitions:
[ 318.182525] 1f00 512 mtdblock0 (driver?)
[ 318.187530] 1f01 1920 mtdblock1 (driver?)
[ 318.192565] 1f02 128 mtdblock2 (driver?)
[ 318.197570] 1f03 4096 mtdblock3 (driver?)
[ 318.202606] 1f04 255488 mtdblock4 (driver?)
[ 318.207641] b300 7763968 mmcblk0 driver: mmcblk
[ 318.212890] b301 329301 mmcblk0p1
[ 318.217224] b302 7430062 mmcblk0p2
[ 318.221588] Kernel panic - not syncing: VFS: Unable to mount root fs
on unknown-block(179,2)

Ulrich

unread,
Mar 29, 2010, 10:50:47 AM3/29/10
to Beagle Board
Hi Chao,

On Mar 16, 7:07 am, Chao You <chao....@ndsu.edu> wrote:

> CONFIG_OMAP_MUX has to be enable. But when the CONFIG_OMAP_MUX is
> enabled, my kernel won't find the root file system anymore. Error
> message is shown at the bottom.

It seems that the code around MMC detection/write protect is not
implemented well. If you comment out the line
//omap_cfg_reg(AH8_34XX_GPIO29);
in arch/arm/mach-omap2/board-omap3beagle.c it will work again. My u-
boot configures this pin to mode3, whereas kernel reconfigures it to
mode4(gpio29) when CONFIG_OMAP_MUX is enabled. I am kind of unsure
what the exact meaning of this pin is on beagle board. Schematic and
description of beagleboard contradict each other.

> Another question is related to the mux.c file. The gpio-168 is AF15.
> The default mux.c file is set to MODE0. Without enable the OMAP_MUX,
> if I change mux.c to MODE4, will that enable the gpio-168?

Without enable CONFIG_OMAP_MUX nothing will happen, even if you have
it enabled that won't change anything unless you do the proper
omap_cfg_reg() call.
Please be aware that the mux.c and the enum in arch/arm/plat-omap/
include/mach/mux.h must correspond when adding/removing settings. This
is kind of error prone.

Regards, Ulrich

Ulrich

unread,
Mar 31, 2010, 10:40:29 AM3/31/10
to Beagle Board
Reply all
Reply to author
Forward
0 new messages