Hi,
I am using AM1808-OMAPL13X LOGICPD ZOOM EXP KIT with L13X UART expansion Board of mistral. I want to use soft-UART so i done following steps.
- using l13xdc_quick start guide.pdf installing the driver sources for DaVinci-PSP-SDK-03.20.00.12 for patches from pru-linux-06-23-2011-1121-v3.1.patch.tar.gz
-Building the firmware Execute the script build_linux.sh Copy the files from under the “pru/firmware/bin” directory into the filesystem“lib/firmware/omapl_pru”.$ cp bin/* lib/firmware/omapl_pru
-from http://processors.wiki.ti.com/index.php/Soft-UART_Implementation_on_OMAPL_PRU_-_Software_Users_Guide Building the linux kernel & device driver
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
make INSTALL_MOD_PATH=/home/user/target_rootfs modules_install
upto this it is working fine but
-With this uImage AM1808 decompressed it but not booting & its hang up after "uncompressing kernel....done.Booting the kernel."
-With all modules installed if i used the older uImage then if i do "modprobe suart_emu" then i got error that suart_emu.ko is not a file or directories but actually that suart_emu.ko file is there.so how to solve this problem?
Hi Jitendra,What is the difference between the first kernel that boots and second that does not? What kernel versions are each of these?The error message seen with modprobe may indicate that there is a mismatch between the kernel version and the version the module expects. Are you able to install the module by changing directories to where the suart_emu.ko is located and doing "insmod suart_emu"?Also, please note that the latest driver and firmware are available here.Regards,Melissa
Hi Melissa,
The first kernel version is 2.6.33 -rc4(from AM1808-OMAPL138 Exp.Kit) & second kernel version 2.6.37 -rc2 (from http://processors.wiki.ti.com/index.php/Soft-UART_Implementation_on_OMAPL_PRU_-_Software_Users_Guide)
If i used the pre-built uImage with Root File system from above link then there is problem in Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) as shown in booting sequence...
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) as shown in booting sequence...
Booting with TI UBL
Device OPP (456MHz, 1.3V)
U-Boot 2009.11 (Apr 15 2011 - 13:22:24)
I2C: ready
DRAM: 64 MB
MMC: davinci: 0
In: serial
Out: serial
Err: serial
ARM Clock : 456000000 Hz
DDR Clock : 132000000 Hz
Net: Ethernet PHY: GENERIC @ 0x00
Hit any key to stop autoboot: 0
Using device
TFTP from server 192.168.90.184; our IP address is 192.168.90.150
Filename 'uImage'.
Load address: 0xc0700000
Loading: #################################################################
#################################################################
#############################################################
done
Bytes transferred = 2305132 (232c6c hex)
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-2.6.37
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2305068 Bytes = 2.2 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.37 (rohit@rohit-desktop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 PREEMPT Tue Dec 13 17:09:52 IST 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA850/OMAP-L138/AM18x EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci da850/omap-l138/am18x variant 0x1
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: console=ttyS2,115200n8 rw noinitrd mem=64M root=/dev/nfs nfsroot=192.168.90.184:/home/rohit/NFS,nolock,rsize=1024,wsize=1024 ip=192.168.90.150:19f
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60036k/60036k available, 5500k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xff000000 - 0xffe00000 ( 14 MB)
vmalloc : 0xc4800000 - 0xfea00000 ( 930 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0031000 ( 164 kB)
.text : 0xc0031000 - 0xc047b000 (4392 kB)
.data : 0xc047c000 - 0xc04a6a20 ( 171 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptable hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:245
Console: colour dummy device 80x30
Calibrating delay loop... 226.91 BogoMIPS (lpj=1134592)
pid_max: default: 32768 minimum: 301
Security Framework initialized
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 144 gpio irqs
regulator: core version 0.5
regulator: dummy:
NET: Registered protocol family 16
WARNING: both McASP and McBSP are enabled, but they share pins.
Only McASP will work. If you want McBSP support, disable McASP.
WARNING: both McASP and UART1_AFE are enabled, but they share pins.
Disable one of them.
da850_evm_init: eHRPWM module 0 cannot be used since it is being used by MII interface
da850_evm_init: eHRPWM module1 outputA cannot be used since it is being used by LCD
da850_evm_init: eHRPWM module1 outputB cannot be used since it is being used by spi1
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
pca953x 1-0020: failed reading register
pca953x 1-0021: interrupt support not compiled in
regulator: VDCDC1: 3200 <--> 3300 mV at 3300 mV
regulator: VDCDC2: 1750 <--> 3300 mV at 3300 mV
regulator: VDCDC3: 950 <--> 1350 mV at 1300 mV
regulator: LDO1: 1800 mV
regulator: LDO2: 1150 <--> 1300 mV at 1200 mV
i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
Advanced Linux Sound Architecture Driver Version 1.0.23.
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Switching to clocksource timer0_1
musb-hdrc: version 6.0, host, debug=0
musb-hdrc musb-hdrc: dma type: dma-cppi41
Waiting for USB PHY clock good...
musb-hdrc musb-hdrc: MUSB HDRC host driver
musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
musb-hdrc musb-hdrc: USB Host mode controller at fee00000 using DMA, IRQ 58
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
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 udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
EMAC: MII PHY configured, RMII PHY will not be functional
McBSP:Probed McBSP1
JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
msgmni has been set to 117
io scheduler noop registered (default)
da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01 panel
Console: switching to colour frame buffer device 60x34
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a AR7
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a AR7
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a AR7
console [ttyS2] enabled
brd: module loaded
at24 1-0050: 32768 byte 24c256 EEPROM (writable)
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
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 (8192 Kbytes)
Creating 6 MTD partitions on "m25p80":
0x000000000000-0x000000010000 : "UBL"
0x000000010000-0x000000090000 : "U-Boot"
0x000000090000-0x0000000a0000 : "U-Boot-Env"
0x0000000a0000-0x000000320000 : "Kernel"
0x000000320000-0x000000720000 : "Filesystem"
0x0000007f0000-0x000000800000 : "MAC-Address"
Read MAC addr from SPI Flash: 00:08:ee:05:17:2d
spi_davinci spi_davinci.1: Controller at 0xfef0e000
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffffe
davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver SMSC LAN8710/LAN8720
console [netcon0] enabled
netconsole: network logging started
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 2
ohci ohci.0: irq 59, io mem 0x01e25000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
input: gpio-keys-polled as /devices/platform/gpio-keys-polled.1/input/input0
input: TPS6507x Touchscreen as /devices/platform/i2c-gpio.1/i2c-1/1-0048/input/input1
omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
omap_rtc: RTC power up reset detected
omap_rtc: already running
ata1: SATA link down (SStatus 0 SControl 300)
i2c /dev entries driver
watchdog watchdog: heartbeat 60 sec
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCILL protocol initialized
cpuidle: using governor ladder
cpuidle: using governor menu
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
davinci_mmc davinci_mmc.1: Using DMA, 4-bit mode
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
1-0018 supply IOVDD not found, using dummy regulator
1-0018 supply DVDD not found, using dummy regulator
1-0018 supply AVDD not found, using dummy regulator
1-0018 supply DRVDD not found, using dummy regulator
asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
ALSA device list:
#0: DA850/OMAP-L138 EVM
nf_conntrack version 0.5.0 (938 buckets, 3752 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.15
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
mmc0: new high speed SDHC card at address b368
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
mmcblk0: mmc0:b368 00000 3.74 GiB
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
mmcblk0: p1 p2 p3
regulator_init_complete: incomplete constraints, leaving LDO2 on
regulator_init_complete: incomplete constraints, leaving LDO1 on
regulator_init_complete: incomplete constraints, leaving VDCDC3 on
regulator_init_complete: incomplete constraints, leaving VDCDC2 on
regulator_init_complete: incomplete constraints, leaving VDCDC1 on
omap_rtc omap_rtc: setting system clock to 2011-07-07 13:46:33 UTC (1310046393)
davinci_mdio davinci_mdio.0: resetting idled controller
net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=0:00, id=7c0f1)
IP-Config: Complete:
device=eth0, addr=192.168.90.150, mask=255.255.255.0, gw=192.168.90.254,
host=gtmoc, domain=, nis-domain=(none),
bootserver=192.168.90.184, rootserver=192.168.90.184, rootpath=
PHY: 0:00 - Link is Up - 10/Half
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 64 mtdblock0 (driver?)
1f01 512 mtdblock1 (driver?)
1f02 64 mtdblock2 (driver?)
1f03 2560 mtdblock3 (driver?)
1f04 4096 mtdblock4 (driver?)
1f05 64 mtdblock5 (driver?)
b300 3931136 mmcblk0 driver: mmcblk
b301 64260 mmcblk0p1 00000000-0000-0000-0000-000000000mmcblk0p1
b302 923737 mmcblk0p2 00000000-0000-0000-0000-000000000mmcblk0p2
b303 2891700 mmcblk0p3 00000000-0000-0000-0000-000000000mmcblk0p3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
Backtrace:
[<c0035730>] (dump_backtrace+0x0/0x114) from [<c036e548>] (dump_stack+0x18/0x1c)
r7:00008000 r6:c3814000 r5:c00284c4 r4:c04a6ff0
[<c036e530>] (dump_stack+0x0/0x1c) from [<c036e5c4>] (panic+0x78/0x19c)
[<c036e54c>] (panic+0x0/0x19c) from [<c0008fd4>] (mount_block_root+0x1e0/0x220)
r3:00000000 r2:00000000 r1:c3827f58 r0:c041795c
[<c0008df4>] (mount_block_root+0x0/0x220) from [<c00090c0>] (mount_root+0xac/0xd0)
r8:00000000 r7:00000013 r6:c004a27c r5:c00284c4 r4:00200000
[<c0009014>] (mount_root+0x0/0xd0) from [<c0009254>] (prepare_namespace+0x170/0x1c8)
r4:c04a6a84
[<c00090e4>] (prepare_namespace+0x0/0x1c8) from [<c00084c0>] (kernel_init+0x114/0x154)
r5:c00083ac r4:c04a6a20
[<c00083ac>] (kernel_init+0x0/0x154) from [<c004a27c>] (do_exit+0x0/0x6e0)
r5:c00083ac r4:00000000
So now how to solve this problem?
also i tried with kernel 2.6.33-rc4 uImage with Root file system from above link then it is working fine upto booting but i got following issue
root@am180x-evm:~# modprobe suart_emu FATAL: Could not open 'kernel/drivers/serial/omapl_pru/suart_emu.ko': No such file or directory root@am180x-evm:~# cd /lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru/ root@am180x-evm:/lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru# ls suart_emu.ko root@am180x-evm:/lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru# insmod suart_emu.ko suart_emu: Unknown symbol release_firmware suart_emu: Unknown symbol request_firmware insmod: error inserting 'suart_emu.ko': -1 Unknown symbol in module So how to solve this problem?
root@am180x-evm:~# modprobe suart_emu
FATAL: Could not open 'kernel/drivers/serial/omapl_pru/suart_emu.ko': No such file or directory
root@am180x-evm:~# cd /lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru/
root@am180x-evm:/lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru# ls
suart_emu.ko
root@am180x-evm:/lib/modules/2.6.33-rc4/kernel/drivers/serial/omapl_pru# insmod
suart_emu: Unknown symbol release_firmware
suart_emu: Unknown symbol request_firmware
insmod: error inserting 'suart_emu.ko': -1 Unknown symbol in module
So how to solve this problem?
Hi Jitendra,
Can you try using a 2.6.32 kernel version? The Linux driver was implemented on the 2.6.32 kernel and will not work with the 2.6.37 kernel. You can obtain this kernel from the Linux Kernel and Driver Sources on the soft-UART wiki page.
Also, what toolchain (i.e. CodeSourcery) and version was used to build both the image and module?
Regards,
Melissa
Another thought is to make sure firmware support is enabled by your kernel. For example, the following firmware support should be enabled by the da850_am18x_pru_defconfig file:
CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE=""
The steps to build the kernel using this defconfig file are give on the wiki.
Regards,Melissa
I also tried with kernel version 2.6.32 but it is giving me the same problem. I used the CodeSourcery (Sourcery G++ Lite 2009q1-203) toolchain for GCC version 4.3.3 from CD provided with ZOOM AM1808 Experimenter Kit (LOGICPD).
What steps / commands are you using to build the kernel?
Make sure you use da850_am18x_pru_defconfig (note this is different than da850_omapl138_defconfig).
I tried with "da850_am18x_pru_defconfig" but it hang up at " Uncompressing Linux... done, booting the kernel.
jitendra
It looks like you have a later rev of the chip. On the older kernel versions, you might have to add the later rev to the ID table in arch/arm/mach-davinci/da850.c. The table should look something like this:
/* Contents of JTAG ID register used to identify exact cpu type */static struct davinci_id da850_ids[] = { { .variant = 0x0, .part_no = 0xb7d1, .manufacturer = 0x017, /* 0x02f >> 1 */ .cpu_id = DAVINCI_CPU_ID_DA850, .name = "da850/omap-l138", }, { .variant = 0x1, .part_no = 0xb7d1, .manufacturer = 0x017, /* 0x02f >> 1 */ .cpu_id = DAVINCI_CPU_ID_DA850, .name = "da850/omap-l138/am18x", },};
That might be the source of your "Uncompressing Linux" problem.
Hi Norman,
The ID table in arch/arm/mach-davinci/da850.c is same as you mentioned in above post.
Jitendra
The "Uncompressing Linux...done" problem is pretty common. This forum has a lot of posts on the matter. The usual causes are:
- u-boot and linux have different mach type IDs. Odds are your u-boot and various versions of linux are matched. To check, you have to trace the which ID is used in mach-types.h.
- The Linux doesn't support a newer processor variant.
- Some versions of TI's kernels use ttyO2 rather ttyS2 to identify the serial ports. Not sure if that applies to your processor.
- A lot of posts suggest adding earlyprintk to the bootargs and configure the kernel for earlyprintk. This might get something out the serial port to diagnose the problem.
As for the NFS problem. If NFS mounts on one version of a kernel but not on another, then you might have the problem where NFS starts up faster than the network. The usual solution is to add rootdelay=5 to the bootargs. This will delay the NFS mount by an arbitrary amount by 5 seconds. There are a lot of ways for NFS to fail. This forum has a lot of posts on this problem as well.
Is U-boot the same for all versions of the kernel you are trying to boot? Is the bootargs the same? Not clear on which failures belong to which version. Can the symptoms be summarized as:
2.6.32 - "Uncompressing Liinux"2.6.33-rc4 - "Unable to mount root fs via NFS"2.6.37-rc2 - modprobe problems
I have also had a "Uncompressing Linux...done" problem with the kernel from this wiki page http://processors.wiki.ti.com/index.php/Soft-UART_Implementation_on_OMAPL_PRU_-_Software_Users_Guide
After enabling CONFIG_DEBUG_LL and patching printk() function by adding printascii() function I understood that problem is with incorrect JTAG ID. For me problem was solved by improving IDs as said Norman Wong few posts before. I added second ID structure into da850_ids[ ] table in arch/arm/mach-davinci/da850.c.
There is corresponded posts:
http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/70047.aspx
http://e2e.ti.com/support/embedded/f/354/p/67290/248486.aspx#248486