This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/OMAP-L138: Unable to Boot Linux on Custom Board

Part Number: OMAP-L138
Other Parts Discussed in Thread: OMAPL138, , TPS65023, PMP, DA8XX, DSD1791

Tool/software: Linux

Hi,

I've been working on a MityDsp-L138, featuring TI's OMAPL138 ARM+DSP processor. So far, I can make the ARM core boot to Linux (Ångström 3.2.0) through NFS by using a file system and a kernel supplied by Critical Link. The board is connected to my host PC via Ethernet (to export the file system) and serial (to see the console messages through Minicom).

I also have a custom-manufactured board with OMAPL138 processor on it. I tried to install the same kernel and file system on this processor, using the same workstation; however, I can't make it work. The boot hangs as follows:

=== Boot log ===

U-Boot > boot
Using DaVinci-EMAC device
host 10.10.27.45 is alive
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##########################################
done
Bytes transferred = 2540680 (26c488 hex)
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-3.2.0+
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2540616 Bytes = 2.4 MiB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 3.2.0+ (okancalis@VM) (gcc version 4.5.4 20120305 (prerelea
se) (GCC) ) #4 PREEMPT Thu Dec 28 09:02:54 +03 2017
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: MityDSP-L138/MityARM-1808
Memory policy: ECC disabled, Data cache writethrough
DaVinci da850/omap-l138/am18x variant 0x1
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 24384
Kernel command line: mem=96M console=ttyS2,115200n8 root=/dev/nfs nfsroot=10.10.
27.45:/export/rootfs ip=10.10.27.30:10.10.27.45:10.10.27.45:255.255.255.0:VM::off
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 96MB = 96MB total
Memory: 91352k/91352k available, 6952k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc6800000 - 0xfea00000 ( 898 MB)
lowmem : 0xc0000000 - 0xc6000000 ( 96 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc0530788 (5282 kB)
.init : 0xc0531000 - 0xc055a000 ( 164 kB)
.data : 0xc055a000 - 0xc05b9fc0 ( 384 kB)
.bss : 0xc05b9fe4 - 0xc05e69f0 ( 179 kB)
NR_IRQS:245
Console: colour dummy device 80x30
Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
DaVinci: 144 gpio irqs
print_constraints: dummy:
NET: Registered protocol family 16
baseboard_pre_init: Entered
mityomapl138_setup_nand: using 16 bit data
baseboard_init [IndustrialIO]...
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
set_machine_constraints: VDCDC1: failed to enable
tps65023 1-0048: failed to register tps65023
tps65023: probe of 1-0048 failed with error -121
Advanced Linux Sound Architecture Driver Version 1.0.24.
Switching to clocksource timer0_1
musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
Waiting for USB PHY clock good...
musb-hdrc musb-hdrc: USB OTG mode controller at fee00000 using PIO, IRQ 58
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
msgmni has been set to 178
io scheduler noop registered (default)
start plist test
end plist test
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
console [ttyS2] enabled
brd: module loaded
at24 1-0050: 256 byte 24c02 EEPROM, read-only, 0 bytes/write
MityOMAPL138: Read Factory Config Failed: -110
ahci ahci: forcing PORTS_IMPL to 0x1
ahci ahci: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
ahci ahci: flags: ncq sntf pm led clo only pmp pio slum part ccc
scsi0 : ahci_platform
ata1: SATA max UDMA/133 mmio [mem 0x01e18000-0x01e19fff] port 0x100 irq 67
NAND device: Manufacturer ID: 0x01, Chip ID: 0xbc (AMD NAND 512MiB 1,8V 16-bit)
Bad block table not found for chip 0
Bad block table not found for chip 0
Scanning device for bad blocks
ata1: SATA link down (SStatus 0 SControl 300)
Bad block table written to 0x00001ffe0000, version 0x01
Bad block table written to 0x00001ffc0000, version 0x01
Creating 2 MTD partitions on "davinci_nand.1":
0x000000000000-0x000008000000 : "rootfs"
0x000008000000-0x000020000000 : "homefs"
davinci_nand davinci_nand.1: controller rev. 2.5
spi_davinci spi_davinci.1: DMA: supported
spi_davinci spi_davinci.1: DMA: RX channel: 18, TX channel: 19, event queue: 0
m25p80 spi1.0: m25p64-nonjedec (8192 Kbytes)
Creating 8 MTD partitions on "m25p80":
0x000000000000-0x000000010000 : "ubl"
0x000000010000-0x000000090000 : "u-boot"
0x000000090000-0x0000000a0000 : "u-boot-env"
0x0000000a0000-0x0000000b0000 : "periph-config"
No LCD configured
MII PHY configured
0x0000000b0000-0x000000100000 : "reserved"
0x000000100000-0x000000400000 : "kernel"
0x000000400000-0x000000600000 : "fpga"
0x000000600000-0x000000800000 : "spare"
spi_davinci spi_davinci.1: Controller at 0xfef0e000
CAN device driver interface
mcp251x spi1.1: MCP251x didn't enter in conf mode after reset
mcp251x spi1.1: Probe failed
mcp251x spi1.1: probe failed
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffffd
davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci ohci.0: DA8xx OHCI
ohci ohci.0: new USB bus registered, assigned bus number 1
Waiting for USB PHY clock good...
ohci ohci.0: irq 59, io mem 0x01e25000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mousedev: PS/2 mouse device common for all mice
omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
omap_rtc: RTC power up reset detected
i2c /dev entries driver
cpuidle: using governor ladder
cpuidle: using governor menu
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
dsd1791 spi1.2: Failed to add route LLOUT->Line Out
asoc: dsd1791 <-> davinci-mcasp.0 mapping ok
ALSA device list:
#0: MityDSP-L138 INDIO
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
------------[ cut here ]------------
WARNING: at arch/arm/mach-davinci/da850.c:1109 da850_regulator_init+0x30/0x54()
Unable to obtain voltage regulator for CVDD; voltage scaling unsupported
Modules linked in:
[<c000d518>] (unwind_backtrace+0x0/0xe0) from [<c001cd48>] (warn_slowpath_common
+0x4c/0x64)
[<c001cd48>] (warn_slowpath_common+0x4c/0x64) from [<c001cde0>] (warn_slowpath_f
mt+0x2c/0x3c)
[<c001cde0>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0013c54>] (da850_regulator_in
it+0x30/0x54)
[<c0013c54>] (da850_regulator_init+0x30/0x54) from [<c0014540>] (davinci_cpu_ini
t+0x34/0xbc)
[<c0014540>] (davinci_cpu_init+0x34/0xbc) from [<c0220758>] (cpufreq_add_dev+0x1
20/0x220)
[<c0220758>] (cpufreq_add_dev+0x120/0x220) from [<c019466c>] (sysdev_driver_regi
ster+0xb0/0x128)
[<c019466c>] (sysdev_driver_register+0xb0/0x128) from [<c021fb60>] (cpufreq_regi
ster_driver+0xd0/0x17c)
[<c021fb60>] (cpufreq_register_driver+0xd0/0x17c) from [<c0196cfc>] (platform_dr
v_probe+0x14/0x18)
[<c0196cfc>] (platform_drv_probe+0x14/0x18) from [<c0195bec>] (driver_probe_devi
ce+0xd4/0x198)
[<c0195bec>] (driver_probe_device+0xd4/0x198) from [<c0195d10>] (__driver_attach
+0x60/0x84)
[<c0195d10>] (__driver_attach+0x60/0x84) from [<c0194e80>] (bus_for_each_dev+0x4
c/0x78)
[<c0194e80>] (bus_for_each_dev+0x4c/0x78) from [<c01954f8>] (bus_add_driver+0x98
/0x214)
[<c01954f8>] (bus_add_driver+0x98/0x214) from [<c0196274>] (driver_register+0xa0
/0x120)
[<c0196274>] (driver_register+0xa0/0x120) from [<c0197108>] (platform_driver_pro
be+0x18/0x98)
[<c0197108>] (platform_driver_probe+0x18/0x98) from [<c000887c>] (do_one_initcal
l+0x90/0x168)
[<c000887c>] (do_one_initcall+0x90/0x168) from [<c05317e8>] (kernel_init+0x78/0x
11c)
[<c05317e8>] (kernel_init+0x78/0x11c) from [<c0009cb8>] (kernel_thread_exit+0x0/
0x8)
---[ end trace 8a8133f5f08880a7 ]---
console [netcon0] enabled
netconsole: network logging started
davinci_emac davinci_emac.1: using random MAC addr: 86:df:b6:d0:d2:a4
omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
PHY 0:03 not found
net eth0: could not connect to phy 0:03 ( <-- Waits a couple of minutes here )
IP-Config: Complete:
device=eth0, addr=10.10.27.30, mask=255.255.255.0, gw=10.10.27.45,
host=VM, domain=, nis-domain=(none),
bootserver=10.10.27.45, rootserver=10.10.27.45, rootpath=
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00 131072 mtdblock0 (driver?)
1f01 393216 mtdblock1 (driver?)
1f02 64 mtdblock2 (driver?)
1f03 512 mtdblock3 (driver?)
1f04 64 mtdblock4 (driver?)
1f05 64 mtdblock5 (driver?)
1f06 320 mtdblock6 (driver?)
1f07 3072 mtdblock7 (driver?)
1f08 2048 mtdblock8 (driver?)
1f09 2048 mtdblock9 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[<c000d518>] (unwind_backtrace+0x0/0xe0) from [<c0326a40>] (panic+0x58/0x188)
[<c0326a40>] (panic+0x58/0x188) from [<c0531bf4>] (mount_block_root+0x1bc/0x1fc)
[<c0531bf4>] (mount_block_root+0x1bc/0x1fc) from [<c0531dcc>] (mount_root+0xa0/0
xc0)
[<c0531dcc>] (mount_root+0xa0/0xc0) from [<c0531f48>] (prepare_namespace+0x15c/0
x1bc)
[<c0531f48>] (prepare_namespace+0x15c/0x1bc) from [<c0531858>] (kernel_init+0xe8
/0x11c)
[<c0531858>] (kernel_init+0xe8/0x11c) from [<c0009cb8>] (kernel_thread_exit+0x0/
0x8)

There seems to be more than one issue here. There is a warning about voltage regulation, but that's not what crashes the boot. At the line that says "net eth0: could not connect to phy 0:03", the device freezes for a couple of minutes, then continues, only to throw a "kernel panic" error.

What do you think could be the problem here?

Thanks in advance.
Silacko

=== Environment variables ===

U-Boot > pri

baudrate=115200
bootargs=mem=96M console=ttyS2,115200n8 root=/dev/nfs nfsroot=10.10.27.45:/export/rootfs ip=10.10.27.30:10.10.27.45:10.10.27.45:255.255.255.0:VM::off
bootcmd=ping 10.10.27.45; nfs 10.10.27.45:/export/rootfs/boot/uImage; bootm
bootdelay=3
bootfile=uImage
ethact=DaVinci-EMAC
ethaddr=70:b3:d5:b5:1d:a2
fdtaddr=0xc0600000
fdtboot=bootz 0xc0700000 - ${fdtaddr};
fdtfile=da850-lcdk.dtb
fileaddr=c0700000
filesize=2143b
hostname=VM
ipaddr=10.10.27.30
serverip=10.10.27.45
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2017.05-rc1-00044-gc3b7cfe-dirty (Apr 08 2017 - 20:35:07 +0300)