grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] powerpc: fix startup bss cleaning


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: [PATCH] powerpc: fix startup bss cleaning
Date: Tue, 16 Jul 2013 07:47:35 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130630 Icedove/17.0.7

On 15.07.2013 21:12, Paulo Flabiano Smorigo/Brazil/IBM wrote:
Hi,

The trunk version of GRUB is crashing on power machines. Openfirmware
returns the following message:
Welcome to GRUB!

DEFAULT CATCH!, exception-handler=fff00700
at   %SRR0: 0000000000003940   %SRR1: 0000000000083002
Open Firmware exception handler entered from non-OF code

Client's Fix Pt Regs:
  00 000000000020a074 0000000001a3ff40 0000000000000000 00000000001e3de0
  04 00000000001e3eb0 0000000000000004 00000000001d1fd0 000000000000007c
  08 0000000000004000 0000000000003940 00000000001d4810 0000000001a3ff40
  0c 0000000040000084 0000000000000000 0000000000000000 0000000000000000
  10 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  14 0000000000c00000 0000000000000008 0000000000000000 0000000000000000
  18 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  1c 0000000000219620 00000000001e3eb0 0000000000219620 00000000001e3de0
Special Regs:
     %IV: 00000700     %CR: 20000084    %XER: 00000000  %DSISR: 00000000
   %SRR0: 0000000000003940   %SRR1: 0000000000083002
     %LR: 000000000020a0a4    %CTR: 0000000000003940
    %DAR: 0000000000000000
Virtual PID = 0
  ok
0 >

After some investigation, my colleague Gustavo Duarte discover that the
problem is caused by grub_file_filters_enabled. Its initial value isn't
zero:
address@hidden 0x0
address@hidden 0x0
address@hidden 0x0
address@hidden 0x3940


Using objdump I noticed that this variable is the last one from the bss
section:
$objdump -t grub-core/kernel.exec | sort
...
00218d14 l     O .bss   00000004 count.2347
00218d18 l     O .bss   00000100 buf.1909
00218e18 l     O .bss   00000100 linebuf
00218f18 g     O .bss   00000100 grub_errmsg
00219018 g     O .bss   00000010 grub_file_filters_all
00219028 g     O .bss   00000010 grub_file_filters_enabled
00219038 g       .bss   00000000 _end

It seems that startup.S for powerpc skips the last bytes, so I made a
patch to fix it. Tried again and the problem was gone:
address@hidden 0x0
address@hidden 0x0
address@hidden 0x0
address@hidden 0x0

As discussed on IRC this patch was wrong. The real problem was handling unaligned BSS. Fixed in trunk now.


Best regards!


_______________________________________________
Grub-devel mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/grub-devel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]