From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1ZRyzM-0004eA-AF for mharc-grub-devel@gnu.org; Wed, 19 Aug 2015 04:44:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZRyzJ-0004bA-Hc for grub-devel@gnu.org; Wed, 19 Aug 2015 04:44:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZRyzG-0007kn-Ah for grub-devel@gnu.org; Wed, 19 Aug 2015 04:44:49 -0400 Received: from world.peace.net ([50.252.239.5]:57953) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZRyzG-0007kd-6I; Wed, 19 Aug 2015 04:44:46 -0400 Received: from [10.1.10.32] (helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1ZRyz8-00020N-61; Wed, 19 Aug 2015 04:44:38 -0400 From: Mark H Weaver To: Andrei Borzenkov Subject: Re: yeeloong: cs5536 (Geode companion) not working in grub master References: <87io8g1p8u.fsf@netris.org> <55D221B4.9080906@gmail.com> Date: Wed, 19 Aug 2015 04:44:24 -0400 In-Reply-To: <55D221B4.9080906@gmail.com> (Andrei Borzenkov's message of "Mon, 17 Aug 2015 21:02:28 +0300") Message-ID: <87bne3u0pj.fsf@netris.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 50.252.239.5 Cc: bug-grub@gnu.org, The development of GNU GRUB X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Aug 2015 08:44:50 -0000 Hi Andrei, thank you for the quick response. Andrei Borzenkov writes: > 15.08.2015 19:38, Mark H Weaver =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >> I'm attempting to get grub working on the Lemote Yeeloong 8101B >> (Loongson 2F) as a second-stage bootloader from PMON. >> >> I have grub-2.02-beta2-499-g4fe8e6d mostly working, with one exception: >> none of the devices on the cs5536 (Geode companion) are accessible, >> which unfortunately includes the IDE interface for the internal disk. >> > > As far as I understand code, if GRUB wants to have cs5536 and does not > find it it stops. If you enter GRUB it means it skipped cs5536 > initialization. According to code, it can happen only if > grub_arch_memsize !=3D 0. I do not see where GRUB itself sets it before > this check. So my only guess that PMON (whatever it is) fills in this > field in GRUB header. We could add debug print to verify this. Indeed, your guess is correct. I applied the following patch and the output was: "orig_grub_arch_memsize =3D=3D 100". --8<---------------cut here---------------start------------->8--- diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loon= gson/init.c index 7b96531..15a6dfd 100644 --- a/grub-core/kern/mips/loongson/init.c +++ b/grub-core/kern/mips/loongson/init.c @@ -121,6 +121,7 @@ grub_machine_init (void) { grub_addr_t modend; grub_uint32_t prid; + grub_uint32_t orig_grub_arch_memsize; =20 asm volatile ("mfc0 %0, " GRUB_CPU_LOONGSON_COP0_PRID : "=3Dr" (prid)); =20 @@ -154,6 +155,7 @@ grub_machine_init (void) =20 grub_install_get_time_ms (grub_rtc_get_time_ms); =20 + orig_grub_arch_memsize =3D grub_arch_memsize; if (grub_arch_memsize =3D=3D 0) { grub_port_t smbbase; @@ -223,6 +225,10 @@ grub_machine_init (void) grub_serial_init (); =20 grub_boot_init (); + + grub_printf ("orig_grub_arch_memsize =3D=3D %lx\n\n", + (unsigned long) orig_grub_arch_memsize); + grub_getkey (); } =20 void --8<---------------cut here---------------end--------------->8--- I then tried changing "if (grub_arch_memsize =3D=3D 0)" to "if (1)", but that didn't help. The 'lspci' output didn't change, and I was still unable to access the internal disk. The only change I noticed is that tab completion within grub partition specifiers now hangs grub for several seconds before failing to generate any completions, whereas before there was no perceptible delay. >> This grub is able to access filesystems from a thumb drive plugged into >> one of the USB ports: the one next to the ethernet jack, which is the >> one that is not connected to the cs5536. Grub is unable to access the >> other two USB ports, which are connected to the cs5536. >> >> I'm judging what disks are accessible based on tab completion, trying >> various partition names like (hd0,msdos1) (ata0,msdos1), and also using >> the 'search' command. >> >> lspci from grub prints: >> >> 00:02.0 10ec:8139 [0200] Ethernet Controller >> 00:03.0 126f:0712 [0300] VGA Controller >> 00:04.0 1033:0035 [0c03] USB Controller [PI 10] >> 00:04.1 1033:00e0 [0c03] USB Controller [PI 20] >> 00:09.0 1022:208f [ff00] >> > > This is correct; it is the PCI ID that GRUB expects. Okay, but should 'lspci' with GRUB also show entries for the IDE interface and USB controllers that are part of the cs5536? >> whereas "lspci -nn" from my booted system reports: >> >> 00:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. R= TL-8139/8139C/8139C+ [10ec:8139] (rev 10) >> 00:08.0 VGA compatible controller [0300]: Silicon Motion, Inc. SM712 = LynxEM+ [126f:0712] (rev b0) >> 00:09.0 USB controller [0c03]: NEC Corporation OHCI USB Controller [1= 033:0035] (rev 44) >> 00:09.1 USB controller [0c03]: NEC Corporation uPD72010x USB 2.0 Cont= roller [1033:00e0] (rev 05) >> 00:0e.0 ISA bridge [0601]: AMD [Advanced Micro Devices, Inc.] CS5536 = [Geode companion] ISA [1022:2090] (rev 03) >> 00:0e.2 IDE interface [0101]: AMD [Advanced Micro Devices, Inc.] CS55= 36 [Geode companion] IDE [1022:209a] (rev 01) >> 00:0e.3 Multimedia audio controller [0401]: AMD [Advanced Micro Devic= es, Inc.] CS5536 [Geode companion] Audio [1022:2093] (rev 01) >> 00:0e.4 USB controller [0c03]: AMD [Advanced Micro Devices, Inc.] CS5= 536 [Geode companion] OHC [1022:2094] (rev 02) >> 00:0e.5 USB controller [0c03]: AMD [Advanced Micro Devices, Inc.] CS5= 536 [Geode companion] EHC [1022:2095] (rev 02) Thanks! Mark