Mailinglist Archive: opensuse-arm (170 mails)

< Previous Next >
Re: [opensuse-arm] u-boot+EFI: how to debug grub2?
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
<matwey.kornilov@xxxxxxxxx>:

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


If you want to debug grub efi specifics, you can do

Press e (edit current entry)
at the top, add a new line saying "set debug=all"
Pres ctrl-x (or f10) to boot

That should give you all the glorious details from grub2 on what exactly
it's doing.

At the end of long output I see the following:

??, er/arm/linux.c:238: atag: 0x88000000, 90, edfe0dd0, ?
loader/arm/linux.c:246: Kernel at: 0x80008000
loader/arm/linux.c:184: linux_args: 'BOOT_IMAGE=/boot/linux.vmx
plymouth.enable=0 console=ttyS0,115200n8 rootfstype=ramfs showopts'
loader/arm/linux.c:199: Initrd @ 0x8800b000-0x8acfe33c
loader/arm/linux.c:215: FDT updated for Linux boot
loader/arm/linux.c:255: FDT @ 0x0x88000000
loader/arm/linux.c:267: Jumping to Linux...

It seems that grub starts the kernel. I also checked that fdt fits
into 0xb000 bytes.

earlycon=uart8250,0x44e09000,115200n8

mmio mode prints the single one character '['
mmio32 mode prints some garbage
mmio32be prints one space character.


Also, the reset "after some time" could be 2 things. It could either be
the watchdog or it could be Linux in a panic handler resetting after 90
seconds. How long does it take for the board to reset?


It takes about 60 seconds, so it is watchdog most likely.


Alex



--
With best regards,
Matwey V. Kornilov
http://blog.matwey.name
xmpp://0x2207@xxxxxxxxx
--
To unsubscribe, e-mail: opensuse-arm+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-arm+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups