Hello
on a custom board AM3352 i use a PHY marvell 80E1118 and a PHY marvell 80E3018 both in RGMII mode
The ping commands works well under u-boot, but linux, but when booting linux i get the following error :
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Linux version 3.2.0 (pengwyn@pengwyn-desktop) (gcc version 4.5.3
20110311 (prerelease) (GCC) ) #66 Wed May 14 09:23:37 CEST 2014
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio
n cache
[ 0.000000] Machine: am335xevm
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] AM335X ES2.0 (neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pag
es: 130048
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/nfs nfsroot
=192.168.213.44:/home/pengwyn/ti-sdk-am335x-evm-05.06.00.00/targetNFS,proto=tcp,
port=2049 rw ip=dhcp
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 512MB = 512MB total
[ 0.000000] Memory: 513140k/513140k available, 11148k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc05a0000 (5728 kB)
[ 0.000000] .init : 0xc05a0000 - 0xc05de000 ( 248 kB)
[ 0.000000] .data : 0xc05de000 - 0xc06493d0 ( 429 kB)
[ 0.000000] .bss : 0xc06493f4 - 0xc06748a4 ( 174 kB)
[ 0.000000] NR_IRQS:396
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrup
ts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[ 0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
[ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 13
1071999ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.000183] Calibrating delay loop... 548.86 BogoMIPS (lpj=2744320)
[ 0.047149] pid_max: default: 32768 minimum: 301
[ 0.047302] Security Framework initialized
[ 0.047424] Mount-cache hash table entries: 512
[ 0.047851] CPU: Testing write buffer coherency: ok
[ 0.068817] omap_hwmod: gfx: failed to hardreset
[ 0.084991] omap_hwmod: pruss: failed to hardreset
[ 0.086303] print_constraints: dummy:
[ 0.086700] NET: Registered protocol family 16
[ 0.089263] OMAP GPIO hardware version 0.1
[ 0.092132] am335x_ucr_init**
[ 0.092407] omap_mux_init: Add partition: #1: core, flags: 0
[ 0.094543] omap_i2c.1: alias fck already exists
[ 0.095336] d_can.1: alias fck already exists
[ 0.095642] am33xx_d_can_init(1) for UCR
[ 0.096008] omap2_mcspi.1: alias fck already exists
[ 0.096282] omap2_mcspi.2: alias fck already exists
[ 0.097381] edma.0: alias fck already exists
[ 0.097412] edma.0: alias fck already exists
[ 0.097442] edma.0: alias fck already exists
[ 0.131072] bio: create slab <bio-0> at 0
[ 0.133850] SCSI subsystem initialized
[ 0.135833] usbcore: registered new interface driver usbfs
[ 0.136199] usbcore: registered new interface driver hub
[ 0.136444] usbcore: registered new device driver usb
[ 0.136596] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[ 0.136932] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[ 0.153656] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[ 0.154663] pcf857x: probe of 1-0040 failed with error -121
[ 0.154937] i2c i2c-1: Invalid 7-bit I2C address 0xa0
[ 0.154968] i2c i2c-1: Can't create device at 0xa0
[ 0.156127] Advanced Linux Sound Architecture Driver Version 1.0.24.
[ 0.157409] Switching to clocksource gp timer
[ 0.176544] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[ 0.176757] musb-hdrc musb-hdrc.0: dma type: pio
[ 0.177154] MUSB0 controller's USBSS revision = 4ea20800
[ 0.177185] musb0: Enabled SW babble control
[ 0.178039] musb-hdrc musb-hdrc.0: USB OTG mode controller at e083c000 using
PIO, IRQ 18
[ 0.178222] musb-hdrc musb-hdrc.1: dma type: pio
[ 0.178588] MUSB1 controller's USBSS revision = 4ea20800
[ 0.178619] musb1: Enabled SW babble control
[ 0.178833] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[ 0.178894] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus numbe
r 1
[ 0.179046] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.179077] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=
1
[ 0.179077] usb usb1: Product: MUSB HDRC host driver
[ 0.179107] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
[ 0.179107] usb usb1: SerialNumber: musb-hdrc.1
[ 0.180114] hub 1-0:1.0: USB hub found
[ 0.180145] hub 1-0:1.0: 1 port detected
[ 0.180847] musb-hdrc musb-hdrc.1: USB Host mode controller at e083e800 using
PIO, IRQ 19
[ 0.181304] NET: Registered protocol family 2
[ 0.181518] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.181884] TCP established hash table entries: 16384 (order: 5, 131072 bytes
)
[ 0.182250] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.182464] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.182495] TCP reno registered
[ 0.182495] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.182525] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.182739] NET: Registered protocol family 1
[ 0.183044] RPC: Registered named UNIX socket transport module.
[ 0.183074] RPC: Registered udp transport module.
[ 0.183074] RPC: Registered tcp transport module.
[ 0.183105] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.183349] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.202636] VFS: Disk quotas dquot_6.5.2
[ 0.202697] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.203369] msgmni has been set to 1002
[ 0.207031] alg: No test for stdrng (krng)
[ 0.207855] io scheduler noop registered
[ 0.207885] io scheduler deadline registered
[ 0.207977] io scheduler cfq registered (default)
[ 0.209838] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[ 0.779998] console [ttyO0] enabled
[ 0.784210] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[ 0.791900] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[ 0.799530] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[ 0.807128] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[ 0.814788] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[ 0.822967] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
[ 0.841247] brd: module loaded
[ 0.850524] loop: module loaded
[ 0.853912] i2c-core: driver [tsl2550] using legacy suspend method
[ 0.860198] i2c-core: driver [tsl2550] using legacy resume method
[ 0.866424] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.873504] MAC address Pengwyn
[ 0.876678] UCR Board
[ 0.878997] Board name: UCR
[ 0.881896] Board version: #1.0
[ 0.885070] The board is UCR.
[ 0.888885] _omap_mux_get_by_name: Could not find signal mcasp0_aclkr.gpio3_1
5
[ 0.896270] omap_hsmmc.0: alias fck already exists
[ 0.902343] omap-gpmc omap-gpmc: GPMC revision 6.0
[ 0.907196] Registering NAND on CS0
[ 0.912109] The board UCR has no phy_register_fixup_for_uid.
[ 0.918151] registered am33xx_sr device
[ 0.924163] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 0.931304] omap2-nand driver initializing
[ 0.935791] NAND device: Manufacturer ID: 0x20, Chip ID: 0x76 (ST Micro NAND
64MiB 3,3V 8-bit)
[ 0.944763] Creating 8 MTD partitions on "omap2-nand.0":
[ 0.950195] 0x000000000000-0x000000080000 : "SPL"
[ 0.958374] 0x000000080000-0x000000100000 : "SPL.backup1"
[ 0.966918] 0x000000100000-0x000000180000 : "SPL.backup2"
[ 0.975463] 0x000000180000-0x000000200000 : "SPL.backup3"
[ 0.984069] 0x000000200000-0x000000380000 : "U-Boot"
[ 0.995452] 0x000000380000-0x000000400000 : "U-Boot Env"
[ 1.004028] 0x000000400000-0x000001000000 : "Kernel"
[ 1.048065] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 1.056427] 0x000001000000-0x000004000000 : "File System"
[ 1.218536] OneNAND driver initializing
[ 1.225921] Fixed MDIO Bus: probed
[ 1.229400] vcan: Virtual CAN interface driver
[ 1.233917] CAN device driver interface
[ 1.237792] CAN bus driver for Bosch D_CAN controller 1.0
[ 1.244171] d_can d_can.1: device registered (irq=55, irq_obj=56)
[ 1.251312] ------------[ cut here ]------------
[ 1.256011] WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0xa4/0xb4()
[ 1.262481] sysfs: cannot create duplicate filename '/class/mdio_bus/0'
[ 1.269195] Modules linked in:
[ 1.272277] Backtrace:
[ 1.274780] [<c0017978>] (dump_backtrace+0x0/0x110) from [<c0423630>] (dump_s
tack+0x18/0x1c)
[ 1.283325] r6:c0519c0c r5:000001e1 r4:d802dd28 r3:c05ff948
[ 1.289123] [<c0423618>] (dump_stack+0x0/0x1c) from [<c003e49c>] (warn_slowpa
th_common+0x5c/0x6c)
[ 1.298126] [<c003e440>] (warn_slowpath_common+0x0/0x6c) from [<c003e550>] (w
arn_slowpath_fmt+0x38/0x40)
[ 1.307708] r8:00000001 r7:d8022000 r6:d8233a90 r5:d8022000 r4:ffffffef
[ 1.314361] r3:00000009
[ 1.317016] [<c003e518>] (warn_slowpath_fmt+0x0/0x40) from [<c01004cc>] (sysf
s_add_one+0xa4/0xb4)
[ 1.326019] r3:d8022000 r2:c0519c40
[ 1.329650] [<c0100428>] (sysfs_add_one+0x0/0xb4) from [<c0100d68>] (sysfs_do
_create_link+0x108/0x1f4)
[ 1.339080] r7:d80b0a40 r6:d8233bd0 r5:d802dd80 r4:d8233a90
[ 1.344848] [<c0100c60>] (sysfs_do_create_link+0x0/0x1f4) from [<c0100e68>] (
sysfs_create_link+0x14/0x18)
[ 1.354553] [<c0100e54>] (sysfs_create_link+0x0/0x18) from [<c0223320>] (devi
ce_add+0x284/0x588)
[ 1.363464] [<c022309c>] (device_add+0x0/0x588) from [<c0223640>] (device_reg
ister+0x1c/0x20)
[ 1.372100] [<c0223624>] (device_register+0x0/0x20) from [<c0279d68>] (mdiobu
s_register+0x98/0x174)
[ 1.381286] r4:d81e6e00 r3:00000000
[ 1.384918] [<c0279cd0>] (mdiobus_register+0x0/0x174) from [<c041e540>] (davi
nci_mdio_probe+0x228/0x2e0)
[ 1.394500] r8:00000000 r7:d81e4b00 r6:d81e6e08 r5:d8230780 r4:d81e6e00
[ 1.401153] r3:00000000
[ 1.403808] [<c041e318>] (davinci_mdio_probe+0x0/0x2e0) from [<c022727c>] (pl
atform_drv_probe+0x20/0x24)
[ 1.413421] r7:c0626dbc r6:c06436b8 r5:c0669940 r4:d81e6e08
[ 1.419189] [<c022725c>] (platform_drv_probe+0x0/0x24) from [<c0225c94>] (dri
ver_probe_device+0xc0/0x2dc)
[ 1.428894] [<c0225bd4>] (driver_probe_device+0x0/0x2dc) from [<c0225f44>] (_
_driver_attach+0x94/0x98)
[ 1.438323] r8:00000000 r7:00000000 r6:d81e6e3c r5:c0626dbc r4:d81e6e08
[ 1.445129] [<c0225eb0>] (__driver_attach+0x0/0x98) from [<c0224bf8>] (bus_fo
r_each_dev+0x58/0x84)
[ 1.454223] r6:00000000 r5:c0225eb0 r4:c0626dbc r3:c0225eb0
[ 1.459991] [<c0224ba0>] (bus_for_each_dev+0x0/0x84) from [<c022588c>] (drive
r_attach+0x24/0x28)
[ 1.468872] r6:d822ebc0 r5:c061f400 r4:c0626dbc
[ 1.473571] [<c0225868>] (driver_attach+0x0/0x28) from [<c02254f8>] (bus_add_
driver+0x19c/0x26c)
[ 1.482482] [<c022535c>] (bus_add_driver+0x0/0x26c) from [<c02264e8>] (driver
_register+0x80/0x138)
[ 1.491577] [<c0226468>] (driver_register+0x0/0x138) from [<c022774c>] (platf
orm_driver_register+0x5c/0x60)
[ 1.501434] r8:00000000 r7:00000000 r6:d802c000 r5:c05dd3d8 r4:c0649400
[ 1.508087] r3:00000000
[ 1.510772] [<c02276f0>] (platform_driver_register+0x0/0x60) from [<c05c1eb4>
] (davinci_mdio_init+0x18/0x1c)
[ 1.520721] [<c05c1e9c>] (davinci_mdio_init+0x0/0x1c) from [<c000876c>] (do_o
ne_initcall+0x3c/0x180)
[ 1.529998] [<c0008730>] (do_one_initcall+0x0/0x180) from [<c05a0884>] (kerne
l_init+0x9c/0x130)
[ 1.538848] [<c05a07e8>] (kernel_init+0x0/0x130) from [<c004151c>] (do_exit+0
x0/0x67c)
[ 1.546844] r5:c05a07e8 r4:00000000
[ 1.550537] ---[ end trace 34afe95d129ad3e9 ]---
[ 1.555511] mii_bus 0 failed to register
[ 1.559570] davinci_mdio: probe of davinci_mdio.0 failed with error -22
1) we use marvell PHY , what should be enabled in kernel configuration ?
i have the following configuration :
#
# CAIF transport drivers
#
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_DM9000 is not set
# CONFIG_DNET is not set
CONFIG_NET_VENDOR_FARADAY=y
# CONFIG_FTMAC100 is not set
# CONFIG_FTGMAC100 is not set
CONFIG_NET_VENDOR_INTEL=y
CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8851 is not set
# CONFIG_KS8851_MLL is not set
CONFIG_NET_VENDOR_MICROCHIP=y
# CONFIG_ENC28J60 is not set
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NET_VENDOR_8390=y
# CONFIG_AX88796 is not set
# CONFIG_ETHOC is not set
CONFIG_NET_VENDOR_SEEQ=y
# CONFIG_SEEQ8005 is not set
CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC91X=y
# CONFIG_SMC911X is not set
CONFIG_SMSC911X=y
# CONFIG_SMSC911X_ARCH_HOOKS is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
CONFIG_NET_VENDOR_TI=y
# CONFIG_TI_DAVINCI_EMAC is not set
CONFIG_TI_DAVINCI_MDIO=y
CONFIG_TI_DAVINCI_CPDMA=y
CONFIG_TI_CPSW=y
# CONFIG_TI_CPTS is not set
CONFIG_TI_CPSW_DUAL_EMAC=y
CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=y
# CONFIG_DAVICOM_PHY is not set
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_VITESSE_PHY is not set
CONFIG_SMSC_PHY=y
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_MICREL_PHY is not set
# CONFIG_FIXED_PHY is not set
# CONFIG_MDIO_BITBANG is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
2° how linux detects the PHY ?
3) what is errror -22 ?
Best regards