grub-devel
[Top][All Lists]
Advanced

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

[PATCH] powerpc: fix startup bss cleaning


From: Paulo Flabiano Smorigo/Brazil/IBM
Subject: [PATCH] powerpc: fix startup bss cleaning
Date: Mon, 15 Jul 2013 15:12:37 -0400
User-agent: Internet Messaging Program (IMP) H4 (5.0.22)

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



Best regards!
--
Paulo Flabiano Smorigo
Software Engineer
Linux Technology Center - IBM Systems & Technology Group

Attachment: grub_ppc_fix_bss_cleanup.patch
Description: Text Data


reply via email to

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