Hi,
We have got imx6 board(Wandboard). Now, we would like to compile linux source and put uImage to SD card(/boot/uImage). We are compiling linux source by:
export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} wandboard_defconfig
make ARCH=arm CROSS_COMPILE=${CC} uImage
then it is giving error for last command make ARCH=arm CROSS_COMPILE=${CC} uImage
SHIPPED arch/arm/boot/compressed/hyp-stub.S
AS arch/arm/boot/compressed/hyp-stub.o
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
SHIPPED arch/arm/boot/compressed/ashldi3.S
AS arch/arm/boot/compressed/ashldi3.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses:
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] Error 1
make: *** [uImage] Error 2
as it suggests "Specify LOADADDR on the commandline to build an uImage"
after searching in web , came to know that command can be run as:
make ARCH=arm CROSS_COMPILE=${CC} uImage -j4 LOADADDR=0x10008000
this is creating uImage in /arch/arm/boot/. Now we are copying this uImage to SD card (/media/rootfs/boot/).
and also we have copied Ubuntu-Core rootfile system, dtbs(/media/rootfs/boot/dtbs/)
But it is not booting to Ubuntu.
We doubt we are not setting parameters in uEnv.txt (/media/rootfs/boot/uEnv.txt)
uEnv.txt file contents are:
uname_r=3.10.53
dtb=xyz.dtb
whether this 3.10.53 for uname_r is correct or not????? how to set uname_r and how to get this uname_r???
Hi,
any suggestions please. We stuck up at the same problem since 15 days....
Hi,
These are the following changes from reference board to custom board:
1. Reference board has 2GB DDR3 memory where as custom board has 512MB LPDDR2 memory.
2. Reference board has IMX6Q processor where as custom board has IMX6D processor
for memory and processor type only UBoot changes or Kernel files also need to be changed.
Hi,
bdinfo in u-boot has resulted as below:
=> bdinfo | ||
arch_number = 0x0000113C | ||
boot_params = 0x10000100 | ||
DRAM bank = 0x00000000 | ||
-> start | = 0x10000000 | |
-> size | = 0x20000000 | |
eth0name | = FEC | |
ethaddr | = (not set) | |
current eth = FEC | ||
ip_addr | = <NULL> | |
baudrate | = 115200 bps | |
TLB addr | = 0x2FFF0000 | |
relocaddr = 0x2FF66000 | ||
reloc off = 0x18766000 | ||
irq_sp | = 0x2F565EA0 | |
sp start | = 0x2F565E90 | |
FB base | = 0x2F56B9A0 |
Hi,
Iam trying very hard to find out where we are doing mistake. with 3.10.53, the reference board is booting fine but custom board is not booting and stucking at "starting kernel..." .
I have enable Kernel Lowlevel debugging and Earlyprintk with which I could able to get some messages as below:
Starting kernel ... | |
Uncompressing Linux... done, booting the kernel. | |
Booting Linux on physical CPU 0x0 |
Linux version 3.10.53-1.1.0_ga-wandboard-06048-g286b4ef (srinivas@srinivas-Lati5
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d | |
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache |
Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Wandboard Quad basd
bootconsole [earlycon0] enabled | |
cma: CMA: reserved 32 MiB at 2e000000 | |
Memory policy: ECC disabled, Data cache writealloc | |
PERCPU: Embedded 8 pages/cpu @811e6000 s8960 r8192 d15616 u32768 | |
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 |
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p1 rw rootfstype=et
PID hash table entries: 2048 (order: 1, 8192 bytes) | ||
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) | ||
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) | ||
Memory: 512MB = 512MB total | ||
Memory: 472620k/472620k available, 51668k reserved, 0K highmem | ||
Virtual kernel memory layout: | ||
vector : 0xffff0000 - 0xffff1000 ( 4 kB) | ||
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) | ||
vmalloc : 0xa0800000 - 0xff000000 (1512 MB) | ||
lowmem : 0x80000000 - 0xa0000000 ( 512 MB) | ||
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB) | ||
modules : 0x7f000000 - 0x7fe00000 ( 14 MB) | ||
.text : 0x80008000 - 0x80ca1eac (12904 kB) | ||
.init : 0x80ca2000 - 0x80cef300 ( 309 kB) | ||
.data : 0x80cf0000 - 0x80d5dcd0 ( 440 kB) | ||
.bss : 0x80d5dcd0 - 0x80dd76c4 ( 487 kB) | ||
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 | ||
Preemptible hierarchical RCU implementation. | ||
NR_IRQS:16 nr_irqs:16 16 | ||
L310 cache controller enabled |
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32470000, Cache size: 1048576 B
It is neither progressing further nor giving me some error messages. What is the problem. what is the mistake that we are doing????
Hi,
this error is rectified when i made 2 cores in DTS (since kernel is compiled with MAX_CPU-COREs=2). After that we are getting the following error in GPC:
L310 cache controller enabled |
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32470000, Cache size: 1048576 B
------------[ cut here ]------------ | |
WARNING: at arch/arm/mach-imx/gpc.c:530 imx_gpc_init+0x4c/0x210() | |
Modules linked in: |
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.53-1.1.0_ga-wandboard-06048-g2861
[<800149ac>] (unwind_backtrace+0x0/0x12c) from [<80012218>] (show_stack+0x10/0x)
[<80012218>] (show_stack+0x10/0x14) from [<8002dce8>] (warn_slowpath_common+0x5)
[<8002dce8>] (warn_slowpath_common+0x54/0x6c) from [<8002dd9c>] (warn_slowpath_)
[<8002dd9c>] (warn_slowpath_null+0x1c/0x24) from [<80cd5730>] (imx_gpc_init+0x4)
[<80cd5730>] (imx_gpc_init+0x4c/0x210) from [<80cd9e88>] (imx6q_init_irq+0x14/0)
[<80cd9e88>] (imx6q_init_irq+0x14/0x1c) from [<80cc9974>] (start_kernel+0x1e8/0)
[<80cc9974>] (start_kernel+0x1e8/0x328) from [<10008074>] (0x10008074) | |
---[ end trace 1b75b31a2719ed1c ]--- |
Unable to handle kernel NULL pointer dereference at virtual address 00000008
pgd = 80004000 | |||
[00000008] *pgd=00000000 | |||
Internal error: Oops: 805 [#1] PREEMPT SMP ARM | |||
Modules linked in: | |||
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G | W | 3.10.53-1.1.0_ga-wandboard1 | |
task: 80d23648 ti: 80d18000 task.ti: 80d18000 | |||
PC is at imx_gpc_init+0x5c/0x210 | |||
LR is at warn_slowpath_null+0x1c/0x24 | |||
pc : [<80cd5740>] | lr : [<8002dd9c>] | psr: 600001d3 | |
sp : 80d19f90 ip : 00000000 fp : 00000000 | |||
r10: 00000000 r9 : 412fc09a r8 : 1000406a | |||
r7 : 80d85a34 r6 : 8120b6c0 r5 : 00000000 r4 : 80d85a34 | |||
r3 : 00000000 r2 : ffffffff r1 : 80d86bb0 r0 : 00000000 | |||
Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel | |||
Control: 10c53c7d Table: 1000404a DAC: 00000015 | |||
Process swapper/0 (pid: 0, stack limit = 0x80d18238) | |||
Stack: (0x80d19f90 to 0x80d1a000) | |||
9f80: | 020dbfff 81204ab8 80d3bc1c 802ebfdc |
9fa0: 00000000 80d85200 80d20480 8120b6c0 80d07a88 1000406a 412fc09a 80cd9e88
9fc0: 80d85200 80cc9974 ffffffff ffffffff 80cc9558 00000000 00000000 80d07a88
9fe0: 00000000 10c53c7d 80d204e0 80d07a84 80d24444 10008074 00000000 00000000
[<80cd5740>] (imx_gpc_init+0x5c/0x210) from [<80cd9e88>] (imx6q_init_irq+0x14/0)
[<80cd9e88>] (imx6q_init_irq+0x14/0x1c) from [<80cc9974>] (start_kernel+0x1e8/0)
[<80cc9974>] (start_kernel+0x1e8/0x328) from [<10008074>] (0x10008074) | |
Code: e3057a34 e5943000 e34870d8 e3e02000 (e5832008) | |
---[ end trace 1b75b31a2719ed1d ]--- |
Kernel panic - not syncing: Attempted to kill the idle task!
What could be the reason for above error. How to resolve this.
Hi,
I have enabled KERNEL_LOW_LEVEL_DEBUGGING and EARLY_PRINTK in the kernel (kernel hacking options).
Now the earlyprintk messages are as below:
debug: [console=ttymxc0,115200 root=/dev/mmcblk2p1 earlyprintk] ... | |
debug: [bootz 0x12000000 - 0x18000000] ... | |
Kernel image @ 0x12000000 [ 0x000000 - 0x59eda8 ] | |
## Flattened Device Tree blob at 18000000 | |
Booting using the fdt blob at 0x18000000 | |
Using Device Tree in place at 18000000, end 1800b546 | |
Starting kernel ... | |
Uncompressing Linux... done, booting the kernel. | |
Booting Linux on physical CPU 0x0 |
Linux version 3.10.53-1.1.0_ga-wandboard-06048-g286b4ef (srinivas@srinivas-Lati5
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d | |
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache |
Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Wandboard Quad basd
bootconsole [earlycon0] enabled | |
cma: CMA: reserved 320 MiB at 1c000000 | |
Memory policy: ECC disabled, Data cache writealloc | |
------------[ cut here ]------------ |
WARNING: at arch/arm/kernel/devtree.c:147 arm_dt_init_cpu_maps+0x184/0x228()
DT /cpu 3 nodes greater than max cores 2, capping them | |
Modules linked in: |
CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.53-1.1.0_ga-wandboard-06048-g286b41
[<800149ac>] (unwind_backtrace+0x0/0x12c) from [<80012218>] (show_stack+0x10/0x)
[<80012218>] (show_stack+0x10/0x14) from [<8002dcd4>] (warn_slowpath_common+0x5)
[<8002dcd4>] (warn_slowpath_common+0x54/0x6c) from [<8002dd1c>] (warn_slowpath_)
[<8002dd1c>] (warn_slowpath_fmt+0x30/0x40) from [<80d06bf0>] (arm_dt_init_cpu_m)
[<80d06bf0>] (arm_dt_init_cpu_maps+0x184/0x228) from [<80d05ea4>] (setup_arch+0)
[<80d05ea4>] (setup_arch+0x650/0x6e4) from [<80d02804>] (start_kernel+0x78/0x32)
[<80d02804>] (start_kernel+0x78/0x328) from [<10008074>] (0x10008074) | ||
---[ end trace 1b75b31a2719ed1c ]--- | ||
PERCPU: Embedded 8 pages/cpu @81248000 s8960 r8192 d15616 u32768 | ||
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 | ||
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p1 earlyprintk | ||
PID hash table entries: 2048 (order: 1, 8192 bytes) | ||
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) | ||
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) | ||
Memory: 512MB = 512MB total | ||
Memory: 176732k/176732k available, 347556k reserved, 0K highmem | ||
Virtual kernel memory layout: | ||
vector : 0xffff0000 - 0xffff1000 ( 4 kB) | ||
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) | ||
vmalloc : 0xa0800000 - 0xff000000 (1512 MB) | ||
lowmem : 0x80000000 - 0xa0000000 ( 512 MB) | ||
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB) | ||
modules : 0x7f000000 - 0x7fe00000 ( 14 MB) | ||
.text : 0x80008000 - 0x80d01a68 (13287 kB) | ||
.init : 0x80d02000 - 0x80d4f300 ( 309 kB) | ||
.data : 0x80d50000 - 0x80dbdb80 ( 439 kB) | ||
.bss : 0x80dbdb80 - 0x80e37744 ( 487 kB) | ||
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 | ||
Preemptible hierarchical RCU implementation. | ||
NR_IRQS:16 nr_irqs:16 16 | ||
L310 cache controller enabled |
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32470000, Cache size: 1048576 B
After this it is not progressing... further . Please help how to proceed further. How to make my board to boot to 3.10.53
Yes,
After "Starting Kernel..." nothing is shown on the console (UART1/ttymxc0) and HDMI display also is not coming.
Hi,
Still this problem is there. Now also it is stcking at "starting Kernel". My doubt is aminly on dtb files iam using. Can anybody suggest some solution to this problem.
Hi,
Just to double check, according to the next comments:
"3. Now when we are trying for linux 3.10.53 reference board is booting fine and we could able to use it. But when we are using 3.10.53 kernel, rootfs (ubuntu-core-14.04.02-armhf) and dtbs, then custom board booting is stucking at "Starting Kernel ...". "
you are not able to use 3.10.53 with ubuntu rootfs right? or is it just the uart console that is not shown?
/Alejandro
Hi,
Thanks for the reply. But this also not working.One more doubt is:
Console messages for the board which is booting are:
debug: [console=ttymxc0,115200 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait .
debug: [bootz 0x12000000 - 0x18000000] ...
Kernel image @ 0x12000000 [ 0x000000 - 0x50f628 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1800ec2b
So, my query is as per your suggestion above
"make ARCH=arm CROSS_COMPILE=${CC} zImage LOADADDR=0x10800000" ,
LOADADDR will be 0x10800000 or 0x12000000. which one we should specify.
make ARCH=arm CROSS_COMPILE=${CC} zImage LOADADDR=0x10800000
Hi,
Feel free to share the dts.
/Alejandro
Please find the attached dts files for your reference.
I would like demonstrate our problem more briefly:
1. We have got IMX6 Referenced board (Wandboard) and custom board designed based on reference board.
from reference board to custom board following are the the modifications:
- reference board (Wandboard) has quad processor (IMX6Q) where as custom board has imx6D (Dual)
- reference board has DDR3 2GB where as custom board has LPDDR2 512 MB. (We have modified u-boot. So custom board is also booting fine)
2. Now We have followed Robert Nelson's post to port Ubuntu to reference board and custom board. Both are working fine , booting and we could able to run some applications with out any problems in both the boards.
3. Now when we are trying for linux 3.10.53 reference board is booting fine and we could able to use it. But when we are using 3.10.53 kernel, rootfs (ubuntu-core-14.04.02-armhf) and dtbs, then custom board booting is stucking at "Starting Kernel ...".
4. Please find the attached dts files and dtb file which we are using.
Please help us in resolving the issue
after deploying zImage and rootfs, dtbs andkernel modules, boarding stucking at loading the kernel. debug console messages are:
debug: [console=ttymxc0,115200 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait].
debug: [bootz 0x12000000 - 0x18000000] ...
Kernel image @ 0x12000000 [ 0x000000 - 0x557728 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1800ec8f
Starting kernel ...
after this it is not progressing any more. what could be the problem...
Hi,
Please double check the dts contents and make sure that the correct UART module is configured.
/Alejandro