Mailinglist Archive: opensuse-arm (170 mails)

< Previous Next >
Re: [opensuse-arm] u-boot+EFI: how to debug grub2?
2016-03-13 16:44 GMT+03:00 Alexander Graf <agraf@xxxxxxx>:

On 13.03.16 14:39, Matwey V. Kornilov wrote:
2016-03-13 16:21 GMT+03:00 Alexander Graf <agraf@xxxxxxx>:

On 13.03.16 14:13, Matwey V. Kornilov wrote:
2016-03-13 15:09 GMT+03:00 Alexander Graf <agraf@xxxxxxx>:

On 13.03.16 12:30, Alexander Graf wrote:

Am 13.03.2016 um 11:56 schrieb Matwey V. Kornilov


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 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


Try to md.b from there after reset and you should spot the kernel output

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
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
[ 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>]
[ 1.748530] [<c0220c50>] (show_stack) from [<c0586f3c>]
[ 1.755816] [<c0586f3c>] (dump_stack) from [<c037f440>] (panic+0xec/0x270)
[ 1.762745] [<c037f440>] (panic) from [<c0b20a90>]
[ 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:

But seems, bootz relocates initrd and fdt.


With best regards,
Matwey V. Kornilov
To unsubscribe, e-mail: opensuse-arm+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-arm+owner@xxxxxxxxxxxx

< Previous Next >