Hi,
I'm using the QorIQ sdk 1.6 and successfully created the 'fsl-image-core' files. However, when I try to use them on our customized board using p2020, I get what looks like a hang when the kernel is booting. Our uboot file, uImage file, file system and dtb file were all from SDK1.6.
Here are what we setting:
$ setenv bootfile uImage-p2020ds.bin
$ setenv fdtfile uImage-p2020ds.dtb
$ setenv ramdiskfile fsl-image-core-p2020ds.ext2.gz.u-boot
$ run ramboot
Here is the boot log:
setenv bootfile uImage-p2020ds.bin
=> setenv fdtfile uImage-p2020ds.dtb
=> setenv ramdiskfile fsl-image-core-p2020ds.ext2.gz.u-boot
=> run ramboot
Speed: 100, full duplex
Using eTSEC3 device
TFTP from server 192.168.1.10; our IP address is 192.168.1.100
Filename 'fsl-image-core-p2020ds.ext2.gz.u-boot'.
Load address: 0x2000000
Loading: *#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
###################
3.8 MiB/s
done
Bytes transferred = 25077025 (17ea521 hex)
Speed: 100, full duplex
Using eTSEC3 device
TFTP from server 192.168.1.10; our IP address is 192.168.1.100
Filename 'uImage-p2020ds.bin'.
Load address: 0x1000000
Loading: *#################################################################
#################################################################
#################################################################
#################################################################
##########################
3.3 MiB/s
done
Bytes transferred = 4195220 (400394 hex)
Speed: 100, full duplex
Using eTSEC3 device
TFTP from server 192.168.1.10; our IP address is 192.168.1.100
Filename 'uImage-p2020ds.dtb'.
Load address: 0xc00000
Loading: *##
137.7 KiB/s
done
Bytes transferred = 14842 (39fa hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-3.12.19-rt30-QorIQ-SDK-V1.
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4195156 Bytes = 4 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
Image Name: fsl-image-core-p2020ds-201410290
Image Type: PowerPC Linux RAMDisk Image (gzip compressed)
Data Size: 25076961 Bytes = 23.9 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
Booting using the fdt blob at 0xc00000
Uncompressing Kernel Image ... OK
Loading Ramdisk to 2e815000, end 2ffff4e1 ... OK
Loading Device Tree to 03ff9000, end 03fff9f9 ... OK
Using P2020 DS machine description
Memory CAM mapping: 256/256/256 Mb, residual: 1280Mb
Linux version 3.12.19-rt30-QorIQ-SDK-V1.6+gc29fe1a (kuowei.hsu@sw3linux) (gcc version 4.8.1 (GCC) ) #1 SMP Wed Oct 29 16:49:51 CST 2014
Found initrd at 0xee815000:0xeffff4e1
CPU maps initialized for 1 thread per core
bootconsole [udbg0] enabled
setup_arch: bootmem
mpc85xx_ds_setup_arch()
MPC85xx DS board from Freescale Semiconductor
arch: exit
Zone ranges:
DMA [mem 0x00000000-0x2fffffff]
Normal empty
HighMem [mem 0x30000000-0x7fffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x00000000-0x7fffffff]
MMU: Allocated 1088 bytes of context maps for 255 contexts
PERCPU: Embedded 7 pages/cpu @c1971000 s7104 r8192 d13376 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 522752
Kernel command line: root=/dev/ram rw console=,115200 cache-sram-size=0x10000
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Sorting __ex_table...
Memory: 1979676K/2097152K available (6000K kernel code, 316K rwdata, 1792K rodata, 268K init, 1217K bss, 117476K reserved, 1310712K highmem)
Kernel virtual memory layout:
* 0xfff5f000..0xfffff000 : fixmap
* 0xffc00000..0xffe00000 : highmem PTEs
* 0xffbfd000..0xffc00000 : early ioremap
* 0xf1000000..0xffbfd000 : vmalloc & ioremap
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
NR_IRQS:512 nr_irqs:512 16
mpic: Setting up MPIC " OpenPIC " version 1.2 at ffe40000, max 2 CPUs
mpic: ISU size: 256, shift: 8, mask: ff
mpic: Initializing for 256 sources
clocksource: timebase mult[d555555] shift[24] registered
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
mpic: requesting IPIs...
Brought up 2 CPUs
devtmpfs: initialized
NET: Registered protocol family 16
Found FSL PCI host bridge at 0x00000000ffe0a000. Firmware bus number: 0->1
PCI host bridge /pcie@ffe0a000 (primary) ranges:
MEM 0x00000000c0000000..0x00000000dfffffff -> 0x00000000c0000000
IO 0x00000000ffc20000..0x00000000ffc2ffff -> 0x0000000000000000
/pcie@ffe0a000: PCICSRBAR @ 0xfff00000
PCI: Probing PCI hardware
fsl-pci ffe0a000.pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
pci_bus 0000:00: root bus resource [mem 0xc0000000-0xdfffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci 0000:00:00.0: ignoring class 0x0b2000 (doesn't match header type 01)
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0: bridge window [io 0x0000-0xffff]
pci 0000:00:00.0: bridge window [mem 0xc0000000-0xdfffffff]
fsl-l2ctlr ffe20000.l2-cache-controller: Entire L2 as cache, provide valid sram address and size
fsl-l2ctlr: probe of ffe20000.l2-cache-controller failed with error -22
bio: create slab <bio-0> at 0
Freescale Elo series DMA driver
fsl-elo-dma ffe0c300.dma: #0 (fsl,eloplus-dma-channel), irq 76
fsl-elo-dma ffe0c300.dma: #1 (fsl,eloplus-dma-channel), irq 77
fsl-elo-dma ffe0c300.dma: #2 (fsl,eloplus-dma-channel), irq 78
fsl-elo-dma ffe0c300.dma: #3 (fsl,eloplus-dma-channel), irq 79
fsl-elo-dma ffe21300.dma: #0 (fsl,eloplus-dma-channel), irq 20
fsl-elo-dma ffe21300.dma: #1 (fsl,eloplus-dma-channel), irq 21
fsl-elo-dma ffe21300.dma: #2 (fsl,eloplus-dma-channel), irq 22
fsl-elo-dma ffe21300.dma: #3 (fsl,eloplus-dma-channel), irq 23
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
Advanced Linux Sound Architecture Driver Initialized.
Switched to clocksource timebase
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP: reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 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.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 24488K (ee815000 - effff000)
Freescale PMC driver
audit: initializing netlink socket (disabled)
type=2000 audit(0.296:1): initialized
bounce pool size: 64 pages
HugeTLB registered 1 MB page size, pre-allocated 0 pages
HugeTLB registered 4 MB page size, pre-allocated 0 pages
HugeTLB registered 16 MB page size, pre-allocated 0 pages
HugeTLB registered 64 MB page size, pre-allocated 0 pages
HugeTLB registered 256 MB page size, pre-allocated 0 pages
HugeTLB registered 1 GB page size, pre-allocated 0 pages
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.30 [Flags: R/O].
jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc.
msgmni has been set to 1485
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0xffe04500 (irq = 42, base_baud = 37500000) is a 16550A
serial8250.0: ttyS1 at MMIO 0xffe04600 (irq = 42, base_baud = 37500000) is a 16550A
Generic non-volatile memory driver v1.1
brd: module loaded
loop: module loaded
nbd: registered device at major 43
st: Version 20101219, fixed bufsize 32768, s/g segs 256
of-flash e8000000.nor: do_map_probe() failed
fsl-lbc ffe05000.localbus: address did not match any chip selects
fsl-lbc ffe05000.localbus: address did not match any chip selects
fsl-lbc ffe05000.localbus: address did not match any chip selects
fsl-lbc ffe05000.localbus: address did not match any chip selects
fsl_espi ffe07000.spi: master is unqueued, this is deprecated
fsl_espi ffe07000.spi: at 0xf10a6000 (irq = 59)
libphy: Fixed MDIO Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
mdio_bus mdio@ffe24520: cannot get PHY at address 2
mdio_bus mdio@ffe24520: cannot get PHY at address 28
mdio_bus mdio@ffe24520: cannot get PHY at address 29
mdio_bus mdio@ffe24520: cannot get PHY at address 17
libphy: Freescale PowerQUICC MII Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
fsl-gianfar ffe24000.ethernet: enabled errata workarounds, flags: 0x4
fsl-gianfar ffe24000.ethernet eth0: mac: 00:e0:0c:02:00:fd
fsl-gianfar ffe24000.ethernet eth0: Running with NAPI enabled
fsl-gianfar ffe24000.ethernet eth0: RX BD ring size for Q[0]: 256
fsl-gianfar ffe24000.ethernet eth0: TX BD ring size for Q[0]: 256
fsl-gianfar ffe25000.ethernet: enabled errata workarounds, flags: 0x4
fsl-gianfar ffe25000.ethernet eth1: mac: 00:e0:0c:02:01:fd
fsl-gianfar ffe25000.ethernet eth1: Running with NAPI enabled
fsl-gianfar ffe25000.ethernet eth1: RX BD ring size for Q[0]: 256
fsl-gianfar ffe25000.ethernet eth1: TX BD ring size for Q[0]: 256
fsl-gianfar ffe26000.ethernet: enabled errata workarounds, flags: 0x4
fsl-gianfar ffe26000.ethernet eth2: mac: 00:e0:0c:02:02:fd
fsl-gianfar ffe26000.ethernet eth2: Running with NAPI enabled
fsl-gianfar ffe26000.ethernet eth2: RX BD ring size for Q[0]: 256
fsl-gianfar ffe26000.ethernet eth2: TX BD ring size for Q[0]: 256
pps pps0: new PPS source ptp0
ucc_geth_driver: QE UCC Gigabit Ethernet Controller
e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
Here are others questions we confused.
Q1 : As another question asked by "martindubé" in "Problem booting P2020DS with SDK1.4 images", Yiping Wang answer about P2020DS that
"P2020DS was removed since QorIQ SDK 1.2 release, the latest official SDK release for P2020DS is SDK 1.0.3"
'fsl-setup-poky' lists the p2020ds as a supported ppc machine, should I must not assume that it is supported by the SDK1.6 too?
Q2 : And it just stuck there, it seems have some problem with USB module on board. Is that correct and there any one have similar problem?
Q3 : If we move u-boot source code from ../QorIQ-SDK-V1.6-20140619-yocto/build_p2020ds_release/tmp/work/p2020ds-fsl-linux-gnuspe/u-boot/2014.01+fslgit-r0/git to other path and modify for our customized board, how can we get the bootfile image uImage-p2020ds.bin from our costomized u-boot ??
Thanks for all your help in community.
Regards,
Hsu
Solved! Go to Solution.
Hello Kuowei Hsu,
Q1, You could create poky project, because P2020DS config file p2020ds.conf exists under meta-fsl-ppc/conf/machine/. In SDK 1.6 release, P2020DS is not supported, it means u-boot(header file) or Kernel configuration files(dtb) is not maintained to be compatible with the latest source code, and has not been tested. But probably it could still works well with the old configuration files, if they doesn't conflict with the new modified source code.
Q2, if you are not using P2020DS demo board, you could customize your design based on P2020RDB-PC, which is supported in SDK 1.6 release.
What you need to do is removing or commenting usb device node in the dts file, and no need to modify Kernel configuration, please set "hwconfig =" if no need usb devices.
Q3, for customizing u-boot for new board, you often need to touch files include/configs/P2020DS.h and files in board/freescale/p2020ds/. (Probably you need to modify LAW, TLB and DDR configuration).
We often use the following procedure to modify u-boot source and rebuild u-boot.
1. Clean u-boot Cache and get u-boot source code.
$ bitbake -c cleansstate u-boot
$ bitbake -c patch u-boot
2. Go to u-boot source folder and modify u-boot source code.
u-boot source:
build_p2020ds_release/tmp/work/p2020ds-fsl-linux-gnuspe/u-boot/2014.01+fslgit-r0/git/
3. Modify u-boot configuration
Modify the variable UBOOT_MACHINES in meta-fsl-ppc/conf/machine/<machine>.conf.
4. Rebuild U-Boot image
$ cd build_<machine>_release
$ bitbake -c compile -f u-boot
$ bitbake u-boot
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Kuowei Hsu,
Q1, You could create poky project, because P2020DS config file p2020ds.conf exists under meta-fsl-ppc/conf/machine/. In SDK 1.6 release, P2020DS is not supported, it means u-boot(header file) or Kernel configuration files(dtb) is not maintained to be compatible with the latest source code, and has not been tested. But probably it could still works well with the old configuration files, if they doesn't conflict with the new modified source code.
Q2, if you are not using P2020DS demo board, you could customize your design based on P2020RDB-PC, which is supported in SDK 1.6 release.
What you need to do is removing or commenting usb device node in the dts file, and no need to modify Kernel configuration, please set "hwconfig =" if no need usb devices.
Q3, for customizing u-boot for new board, you often need to touch files include/configs/P2020DS.h and files in board/freescale/p2020ds/. (Probably you need to modify LAW, TLB and DDR configuration).
We often use the following procedure to modify u-boot source and rebuild u-boot.
1. Clean u-boot Cache and get u-boot source code.
$ bitbake -c cleansstate u-boot
$ bitbake -c patch u-boot
2. Go to u-boot source folder and modify u-boot source code.
u-boot source:
build_p2020ds_release/tmp/work/p2020ds-fsl-linux-gnuspe/u-boot/2014.01+fslgit-r0/git/
3. Modify u-boot configuration
Modify the variable UBOOT_MACHINES in meta-fsl-ppc/conf/machine/<machine>.conf.
4. Rebuild U-Boot image
$ cd build_<machine>_release
$ bitbake -c compile -f u-boot
$ bitbake u-boot
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi, Yiping,
May I confirm the process to mask usb note in dtb?
We mask the usb note in two files when we don't using usb function.
1. \build_p2020rdb_release\tmp\work\p2020rdb-fsl-linux-gnuspe\linux-qoriq-sdk\3.12-r0\git\arch\powerpc\boot\dts\p2020ds.dtsi
/*
usb@22000 {
phy_type = "ulpi";
};
*/
2. \build_p2020rdb_release\tmp\work\p2020rdb-fsl-linux-gnuspe\linux-qoriq-sdk\3.12-r0\git\arch\powerpc\boot\dts\fsl\p2020si-post.dtsi
/*
/include/ "pq3-usb2-dr-0.dtsi"
usb@22000 {
compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
};
*/
And bitbake -c compile -f virtual/kernel, then bitbake virtual/kernel. Set "hwconfig = " in uboot.
Above is right?
Thanks for all your help in community.
Regards,
kuowei
Hello Kuowei,
Yes, the above is right, if you encounter any problem, please feel free to let me know.
Thanks,
Yiping
Because our board have no USB function, we mask USB configuration in include/configs/XXX.h as follow
#if 0
/*
* USB
*/
#define CONFIG_HAS_FSL_DR_USB
#ifdef CONFIG_HAS_FSL_DR_USB
#define CONFIG_USB_EHCI
#ifdef CONFIG_USB_EHCI
#define CONFIG_CMD_USB
#define CONFIG_USB_STORAGE
#define CONFIG_USB_EHCI_FSL
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
#endif /* CONFIG_USB_EHCI_FSL */
#endif /* CONFIG_USB_EHCI */
#endif
and I also disable function in kernel menuconfig
Device Drivers --->
USB support --->
<*> Support for Host-side USB
[*] USB device filesystem
<> EHCI HCD (USB 2.0) support
[] Support for Freescale controller
[] Support for Host1 port on Freescale controller
[] Freescale MC13783 on Host 1
[] Root Hub Transaction Translators (EXPERIMENTAL)
The case which hang on USB driver is gone.
However, one more question, should I also change the setting about "hwconfig" in u-boot ??
Before
hwconfig="usb1:dr_mode=host,phy_type=ulpi\0"
After
hwconfig="\0"
By the way, we use p2020rdb.conf and p2020rdb-pc_32b.dtb for variable "KERNEL_DEVICETREE".
KERNEL_DEVICETREE ?= "p2020rdb-pc_32b.dtb"
In p2020rdb-pc.dtsi
usb@22000 {
phy_type = "ulpi";
};
In p2020rdb.dts and p2020ds.dtsi
usb@22000 {
phy_type = "ulpi";
dr_mode = "host";
};