2016-03-13 19:16 GMT+03:00 Alexander Graf <agraf@suse.de>:
On 13.03.16 16:50, Matwey V. Kornilov wrote:
2016-03-13 18:20 GMT+03:00 Alexander Graf <agraf@suse.de>:
On 13.03.16 16:17, Matwey V. Kornilov wrote:
2016-03-13 18:11 GMT+03:00 Alexander Graf <agraf@suse.de>:
On 13.03.16 16:05, Matwey V. Kornilov wrote:
2016-03-13 18:03 GMT+03:00 Matwey V. Kornilov <matwey.kornilov@gmail.com>: > 2016-03-13 16:44 GMT+03:00 Alexander Graf <agraf@suse.de>: >> >> >> On 13.03.16 14:39, Matwey V. Kornilov wrote: >>> 2016-03-13 16:21 GMT+03:00 Alexander Graf <agraf@suse.de>: >>>> >>>> >>>> On 13.03.16 14:13, Matwey V. Kornilov wrote: >>>>> 2016-03-13 15:09 GMT+03:00 Alexander Graf <agraf@suse.de>: >>>>>> >>>>>> >>>>>> On 13.03.16 12:30, Alexander Graf wrote: >>>>>>> >>>>>>> >>>>>>>> Am 13.03.2016 um 11:56 schrieb Matwey V. Kornilov <matwey.kornilov@gmail.com>: >>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> I am trying to boot on Phytec Wega board (TI AM33xx based) with >>>>>>>> u-boot+EFI+grub2 and just see >>>>>>>> >>>>>>>> Booting `openSUSE-Tumbleweed-ARM-JeOS-wega [ VMX ]' >>>>>>>> >>>>>>>> Loading linux.vmx... >>>>>>>> Loading initrd.vmx... >>>>>>>> >>>>>>>> and then board is rebooted after some time (I think, by watchdog). >>>>>>>> I am sure that kernel console parameter is correct. >>>>>>>> >>>>>>>> Before EFI was introduced to u-boot, I had booted this board >>>>>>>> successfully. Is there a simple way to somehow understand what is going >>>>>>>> wrong here? >>>>>>> >>>>>>> My guess is that the device tree doesn't get loaded. Do you see a warning about it on serial? Try to add a line in grub2 to manually select the device tree: >>>>>>> >>>>>>> Press e (edit current entry) >>>>>>> at the end, add a new line saying "devicetree /boot/dtb/foo.dtb" >>>>>>> Press ctrl-x (or f10) to boot >>>>>>> >>>>>>> If that makes it work, the default U-Boot environment does not set the "fdtfile" variable. Add it to the env (in your board header) and you should be set :). >>>>>> >>>>>> If that still doesn't help, try to add an earlycon parameter to the >>>>>> kernel command line. If that still doesn't show you anything at all, you >>>>>> can grab the kernel log_buf using md.b from the u-boot command line >>>>>> after reset, but let's see whether you get to the kernel log / fix the >>>>>> issue without that first :). >>>>> >>>>> in System.map I found the following: >>>>> >>>>> c12bfc30 b __log_buf >>>>> >>>>> I am not sure how to properly map this address when I know that kernel >>>>> is loaded at 0x80008000 >>>> >>>> That means that the address should be >>>> >>>> 0x812bfc30 >>>> >>>> Try to md.b from there after reset and you should spot the kernel output >>>> log. >>> >>> When I attach panic=-1 to kernel, the pause is about 15 seconds >>> (instead of 60 earlier), so I think that this parameter is taken into >>> account. >>> However, in any case the buffer log_buf is filled with zeroes >>> according to md.b. Maybe u-boot resets the memory on start? >> >> It usually doesn't. To limit the problem scope, please also make sure >> you don't load the initrd. >> > > That works, but it ends up with not found init. > > [ 1.700159] devtmpfs: error mounting -2 > [ 1.706736] Freeing unused kernel memory: 1320K (c1034000 - c117e000) > [ 1.713459] Kernel panic - not syncing: No working init found. Try > passing init= option to kernel. See Linux Documentation/init.txt for > guidance. > [ 1.726667] CPU: 0 PID: 1 Comm: swapper/0 Not tainted > 4.5.0-rc7-1.g924f2b7-default #1 > [ 1.734535] Hardware name: Generic AM33XX (Flattened Device Tree) > [ 1.740722] [<c0227b90>] (unwind_backtrace) from [<c0220c50>] > (show_stack+0x20/0x28) > [ 1.748530] [<c0220c50>] (show_stack) from [<c0586f3c>] > (dump_stack+0x98/0xac) > [ 1.755816] [<c0586f3c>] (dump_stack) from [<c037f440>] (panic+0xec/0x270) > [ 1.762745] [<c037f440>] (panic) from [<c0b20a90>] > (__irq_alloc_descs+0x0/0x1d8) > [ 1.770205] Rebooting in 90 seconds.. > > However, md.b 0x812bfc30 shows zeroes. It would be great to learn how > to properly use it. > >> If you load the kernel and fdt to the same addresses that grub put them, >> set bootargs to the cmdline in grub and do bootz, does the kernel come up? > > It says the following: > http://paste.opensuse.org/32160189 > > But seems, bootz relocates initrd and fdt. >
Now it is clean, that it is run out of free RAM probably:
[ 0.637547] Unpacking initramfs... [ 3.655300] Initramfs unpacking failed: write error [ 3.740465] Freeing initrd memory: 46032K (cc251000 - cef45000)
But the question, why output doesn't work with grub.
I found that bootz works when rootfstype=tmpfs (or no rootfstype, because it is default) and when rootfstype=ramfs there is also no any output.
With grub you're using the advanced command line that sets rootfsflags=size=100%, so it can theoretically occupy too much ram.
With grub, try and remove all command line arguments except for console= (like you have it in pastebin). Does that get you to the same boot log?
Yes, it seems that rootffstype=ramfs breaks the things!
Well, ramfs is slightly different than rootfsflags=size=100%, but it's great to see that we're getting closer.
So how much ram does your device have? Also, can you try rootfsflags=size=95% instead to see whether that at least gives us output?
Where should It come from? I don't have any rootfsflags in my grub2.
It gets added to the kernel command line by the pre_checkin.sh script.
Now I see, I've grepped rootfsflags instead of rootflags.
Unfortunately, my board has only 256MB of RAM, so last time I need to use rootfstype=ramfs to cope with huge initrd and it worked somehow.
Phew. So with EFI enabled, we need to have all of grub2 inside the initrd (thanks to kiwi). Since your initrd with grub2 is almost 50mb packed, I'd say we really just exceed the 256MB in your case.
Hm, two weeks ago it was 33MB. Now it is clear, except why there is no output on console with ramfs.
I don't have a great idea on how to fix that. The nicest solution would be to have a zram backed swap file (tmpfs can be swapped). But we can't set that up until we are in the initrd, which we can't get into because we're running out of ram....
Alex
-- With best regards, Matwey V. Kornilov http://blog.matwey.name xmpp://0x2207@jabber.ru -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org