Hi,
I have done first partition of mine Zedbaord and given it name Boot and i copied following things here:-
Hi,
I have done first partition of mine Zedbaord and given it name Boot and i copied following things here:-
Hi Aditya,
I ran into similar problems when we started using larger RAMdisk images on ZedBoard. I found that my problem was related to copying files over the top of each other in memory when U-Boot is loading components from the SD card.
Something similar may be happening to you here, take a look at your RAMdisk image which advertises itself as 18046997 bytes (which is 0x1136015 bytes) long. Since you are loading this to 0x2000000 in memory, it occupies 0x2000000 to 0x3136015 (which is 0x2000000 + 0x1136015) which stomps over the top of your devicetree which you loaded to 0x2A00000 AND over your kernel which you loaded to 0x3000000.
Overwriting either the kernel and devicetree with over data would prevent you from successfully booting Linux. I suggest you go back and evaluate where these Linux components can be loaded into memory so that they do not overlap.
Another alternative to managing all of this on your own would be to switch over to using either Xilinx PetaLinux Tools or Wind River Pulsar Linux to help you get your design up and running faster.
Regards,
-Kevin
Hi Kevin,
First of all thanks for such a great reply as myself would have never figured it out as i am very new to such kind of Linux development environment on SoC boards. I will look into this and come back to u. The addresses that i am using,i have got from http://architechboards-zedboard.readthedocs.org/en/latest/quick.html webpage and also this matches with U-boot/ zed_common.h file. So i thought that it is standard thing.
So what you told seems to me logical also. So i will change the addresses. I have total address 0x20000000 .So one thing that::-
1- is it that , at each address only one byte is stored?????Why i am asking this because from some tutorials i got this thing(may be i understood wrong) that at each address two bytes(16 bit) are stored.
2- So i will change accordingly in mine uenv.txt file , then do i also need to change something in mine U-boot/ zed_common.h(which basically contains the setenv variables definitions at the boot time).
lastely, Nice suggestion by you:- "Another alternative to managing all of this on your own would be to switch over to using either Xilinx PetaLinux Tools or Wind River Pulsar Linux to help you get your design up and running faster."
But right now i am in not in a situation to jump into this. I have posted many questions on this forum and As you can see that i am on this work since last one and half months because i started following the webpage http://zedboard.org/product/wilink-8-adaptor which suggested to me to use http://architechboards-zedboard.readthedocs.org/en/latest/quick.html.That is why i could not use PetaLinux etc and now i have come very far.
Thanks you guys always guiding me and helping me all the time. As i have come so far, so let me try this the last hurdle also.
Please keep on guiding me.
Regards
Aditya
Hi Kevin,
Please see mine previous reply against your reply(if seen already it is ok and you can read this now). Then this is the uenv.txt file that have changed as per mine advertised address:-
boot_Zed=mmcinfo;fatload mmc 0 0x3300000 ${kernel_image}; fatload mmc 0 0x3200000 ${devicetree_image}; fatload mmc 0 0x200000 ${ramdisk_image}; bootm 0x3300000 0x2000000 0x3200000
uenvcmd=run boot_Zed
1- So is it ok now??.
2- Now also i have used printenv command to list the setenv variables which is as follows.Please have a quick look and suggest me if anything need to be modified here,since i am going to change mine uenv.txt file. But as per mine thinking since i am using uenv.txt file so in that case nothing need to be modified here.
zynq-uboot> printenv
Hi Kevin,
Please read mine previous reply to u before reading this and if you have alreday read then it is ok. So i have changed mine uEnv.txt filewhich is as follows and as per mine advertised address that you have noticed alreday.
Hi Kevin,
Actually i have modified mine uEnv.txt file and now that problem has gone but now i am getting kernel panic messsage. Can you please advice for this. Here i am again dumping the serial terminal dump:-
U-Boot 2014.01 (Oct 08 2016 - 12:33:09)
I2C: ready
Memory: ECC disabled
DRAM: 512 MiB
MMC: zynq_sdhci: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: Gem.e000b000
Hit any key to stop autoboot: 0
Device: zynq_sdhci
Manufacturer ID: 27
OEM: 5048
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
reading uEnv.txt
203 bytes read in 8 ms (24.4 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Running uenvcmd ...
Device: zynq_sdhci
Manufacturer ID: 27
OEM: 5048
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
reading uImage
4150864 bytes read in 399 ms (9.9 MiB/s)
reading devicetree.dtb
9275 bytes read in 17 ms (532.2 KiB/s)
reading uramdisk.image.gz
18047061 bytes read in 1697 ms (10.1 MiB/s)
## Booting kernel from Legacy Image at 03300000 ...
Image Name: Linux-3.14.0-xilinx-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4150800 Bytes = 4 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
Image Name: ZED filesystem
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 18046997 Bytes = 17.2 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 03200000
Booting using the fdt blob at 0x3200000
Loading Kernel Image ... OK
Loading Ramdisk to 1e9f9000, end 1fb2f015 ... OK
Loading Device Tree to 1e9f3000, end 1e9f843a ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.14.0-xilinx-dirty (architech@architech) (gcc version 4.9.1 (GCC) ) #1 SMP PREEMPT Fri Oct 21 18:51:05 BST 2016
[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: Xilinx Zynq
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] PERCPU: Embedded 8 pages/cpu @dfbdd000 s10752 r8192 d13824 u32768
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
[ 0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/ram rw earlyprintk
[ 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: 488452K/524288K available (5670K kernel code, 348K rwdata, 1964K rodata, 206K init, 5340K bss, 35836K 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] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc077ca60 (7635 kB)
[ 0.000000] .init : 0xc077d000 - 0xc07b0a00 ( 207 kB)
[ 0.000000] .data : 0xc07b2000 - 0xc08092b8 ( 349 kB)
[ 0.000000] .bss : 0xc08092c4 - 0xc0d404a0 (5341 kB)
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU lockdep checking is enabled.
[ 0.000000] Dump stacks of tasks blocking RCU-preempt GP.
[ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] ps7-slcr mapped to e0802000
[ 0.000000] clkc: failed to get resource
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at drivers/clk/zynq/clkc.c:675!
[ 0.000000] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.0-xilinx-dirty #1
[ 0.000000] task: c07bd6f0 ti: c07b2000 task.ti: c07b2000
[ 0.000000] PC is at zynq_clock_init+0x84/0xa4
[ 0.000000] LR is at zynq_clock_init+0x84/0xa4
[ 0.000000] pc : [<c079ae58>] lr : [<c079ae58>] psr: 600000d3
[ 0.000000] sp : c07b3f90 ip : 00000001 fp : 00000000
[ 0.000000] r10: dfffce00 r9 : c07a5e58 r8 : ffffffff
[ 0.000000] r7 : c07b2000 r6 : c07ba3c0 r5 : 00000001 r4 : dfbf29c0
[ 0.000000] r3 : c07bd6f0 r2 : 00000000 r1 : 00000001 r0 : 0000001c
[ 0.000000] Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
[ 0.000000] Control: 18c5387d Table: 0000404a DAC: 00000015
[ 0.000000] Process swapper/0 (pid: 0, stack limit = 0xc07b2240)
[ 0.000000] Stack: (0xc07b3f90 to 0xc07b4000)
[ 0.000000] 3f80: c0809808 c0785650 c06a9b04 dfbf2904
[ 0.000000] 3fa0: e0802000 e0802000 c07a2718 c0809300 c0809300 c0785510 c07a2718 c077d9a4
[ 0.000000] 3fc0: ffffffff ffffffff c077d584 00000000 00000000 c07a5e58 18c5387d c07ba40c
[ 0.000000] 3fe0: c07a5e54 c07bedfc 0000406a 413fc090 00000000 00008074 00000000 00000000
[ 0.000000] [<c079ae58>] (zynq_clock_init) from [<c0785510>] (zynq_timer_init+0xc/0x1c)
[ 0.000000] [<c0785510>] (zynq_timer_init) from [<c077d9a4>] (start_kernel+0x1fc/0x37c)
[ 0.000000] [<c077d9a4>] (start_kernel) from [<00008074>] (0x8074)
[ 0.000000] Code: e8bd8010 e59f0020 e5941000 ebf70335 (e7f001f2)
[ 0.000000] ---[ end trace 3406ff24bd97382e ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
Also i am sharing mine device tree:-
can u please tell me regarding this problem.
Regards
Aditya
Hi Aditya,
Unfortunately, it looks like the kernel crash arises due to some problem within drivers/clk/zynq/clkc.c which can be very difficult to track down.
One method to track this down is to undo all of your hardware platform and devicetree changes to get back to a known working point. Slowly adding pieces back in until it fails is usually one of the only ways to find out which setting can be causing issues resulting in the crash you reported.
Regards,
-Kevin