NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-emips/45080: emips GENERIC kernel doesn't boot
The following reply was made to PR port-emips/45080; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: coypu%sdf.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-emips/45080: emips GENERIC kernel doesn't boot
Date: Fri, 6 Dec 2019 03:43:57 +0900
> I'll re-setup giano.
> https://wiki.netbsd.org/users/ryoon/how_to_install_netbsd_emips_current_to_microsoft_giano/
> https://www.microsoft.com/en-us/download/details.aspx?id=52407
As I wrote in the PR, I guess the essential problem is
STATUS and CAUSE register implementation of the eMIPS:
>> NetBSD/emips GENERIC kernel hangs right after interrupts are enabled.
>> It spins in cpu_intr() because splintr() returns ipending==MIPS_INT_MASK_5
>> while no interrupts are asserted in TheAic->IrqStatus in emips_aic_intr().
With the following ugly patch (I tried back in 2011) and
the newly identified cpu_intr() args fix, NetBSD/emips 9.0_RC1
GENERIC kernel boots upto multiuser. Oh well.
---
Index: emips/interrupt.c
===================================================================
RCS file: /cvsroot/src/sys/arch/emips/emips/interrupt.c,v
retrieving revision 1.6
diff -u -p -d -r1.6 interrupt.c
--- emips/interrupt.c 11 Jul 2016 16:18:56 -0000 1.6
+++ emips/interrupt.c 5 Dec 2019 17:38:29 -0000
@@ -95,7 +95,7 @@ intr_init(void)
* emips uses one line for all I/O interrupts (0x8000).
*/
void
-cpu_intr(int ppl, uint32_t status, vaddr_t pc)
+cpu_intr(int ppl, vaddr_t pc, uint32_t status)
{
uint32_t ipending;
int ipl;
@@ -103,6 +103,10 @@ cpu_intr(int ppl, uint32_t status, vaddr
curcpu()->ci_data.cpu_nintr++;
while (ppl < (ipl = splintr(&ipending))) {
+#if 1 /* BUGBUG incomplete interrupt controller masks */
+ if (TheAic->IrqStatus == 0)
+ break;
+#endif
splx(ipl);
/* device interrupts */
if (ipending & MIPS_INT_MASK_5) {
---
---
Hit any char to boot..
NetBSD/emips 9.0_RC1 Netboot Bootstrap, Revision 1.0 (Wed Nov 27 16:14:52 UTC 2019)
Default: 0/ace(0,0)/netbsd
boot:
Loading: 0/ace(0,0)/netbsd
3674512+107184 [212608+202659]=0x4010ac
Starting at 0x80020000
[ 1.0000000] memory segment 0 start 00000000 size 10000000
[ 1.0000000] memory segment 1 start 10000000 size 00100000
[ 1.0000000] Too much memory in cluster 0, trimming memory to range 00000000..08000000
[ 1.0000000] Too much memory, ignoring memory range 10000000..10100000
[ 1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
[ 1.0000000] 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
[ 1.0000000] 2018, 2019 The NetBSD Foundation, Inc. All rights reserved.
[ 1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[ 1.0000000] The Regents of the University of California. All rights reserved.
[ 1.0000000] NetBSD 9.0_RC1 (GENERIC) #7: Thu Dec 5 02:28:51 JST 2019
[ 1.0000000] tsutsui@mirage:/s/netbsd-9/src/sys/arch/emips/compile/GENERIC
[ 1.0000000] Xilinx ML50x (eMIPS)
[ 1.0000000] total memory = 128 MB
[ 1.0000000] avail memory = 121 MB
[ 1.0000000] mainbus0 (root)
[ 1.0000000] cpu0 at mainbus0: Toshiba or Microsoft eMIPS CPU (0x70401) Rev. 1 with software emulated floating point
[ 1.0000000] cpu0: 64 TLB entries
[ 1.0000000] ebus0 at mainbus0
[ 1.0000000] eclock0 at ebus0 addr 0xfff80000: eMIPS clock
[ 1.0000050] dz0 at ebus0 addr 0xfff90000: neilsart 1 line
[ 1.0000050] ace0 at ebus0 addr 0xfff50000 : System ACE
[ 1.0000050] ace1 at ebus0 addr 0xfff50100 : System ACE
[ 1.0000050] enic0 at ebus0 addr 0xfff10000: eNIC [1 0], address 02:00:00:02:00:00
[ 1.0000050] icap0 at ebus0 addr 0xffed0000: Internal Configuration Access Port
[ 1.0000050] epio0 at ebus0 addr 0xfff60000: GPIO controller
[ 1.0000050] gpio0 at epio0: 32 pins
[ 1.0000050] eflash0 at ebus0 addr 0xfffb0000 base f0000000: 8MB flash memory (2 x StrataFlash 28F320)
[ 1.0000050] lcd at ebus0 addr 0xfff40000 not configured
[ 1.0000050] evga at ebus0 addr 0xfff20000 not configured
[ 1.0000050] ps2 at ebus0 addr 0xfff30000 not configured
[ 1.0000050] ac97 at ebus0 addr 0xffef0000 not configured
[ 1.0000050] eflash0: 8192 KB, 1 cyl, 1 head, 16384 sec, 512 bytes/sect x 16384 sectors
[ 1.0000050] ace0: drive supports 255-sector PIO xfers
[ 1.0000050] ace0: card is <SanDisk SDCFB-32>
[ 1.0000050] ace0: 4096 MB, 256 cyl, 1 head, 32768 sec, 512 bytes/sect x 8388608 sectors
[ 1.0000050] ace1: drive supports 255-sector PIO xfers
[ 1.0000050] ace1: card is <SanDisk SDCFB-32>
[ 1.0000050] ace1: 259 MB, 16 cyl, 1 head, 32768 sec, 512 bytes/sect x 531076 sectors
[ 2.0226181] boot device: ace0 part0
[ 2.0226181] root on ace0a dumps on ace0b
[ 2.0226181] root file system type: ffs
[ 2.0871086] kern.module.path=/stand/emips/9.0/modules
[ 3.1746543] dzparam: c_ispeed 9600 ignored, keeping 38400
Fri Dec 6 03:34:34 JST 2019
Starting root file system check:
/dev/race0a: file system is clean; not checking
eval: handle_fsck_error: not found
swapctl: adding /dev/ace0b as swap device at priority 0
Starting file system checks:
eval: handle_fsck_error: not found
random_seed: /var/db/entropy-file: Not present
Setting tty flags.
Setting sysctl variables:
ddb.onpanic: 1 -> 0
Starting network.
Hostname: emips
IPv6 mode: host
Configuring network interfaces:.
Adding interface aliases:.
eval: checkyesnox: not found
Waiting for DAD to complete for statically configured addresses...
Building databases: dev.
Starting syslogd.
Could not open /dev/crypto: Device not configured
Mounting all file systems...
Clearing temporary files.
Updating fontconfig cache: done.
Checking quotas: done.
Setting securelevel: kern.securelevel: 0 -> 1
Starting virecover.
Checking for core dump...
savecore: no core dump
Starting local daemons:.
Updating motd.
postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
postfix/postfix-script: starting the Postfix mail system
Starting inetd.
Starting cron.
Fri Dec 6 03:37:03 JST 2019
NetBSD/emips (emips) (console)
login: root
Dec 6 03:37:13 emips login: ROOT LOGIN (root) on tty console
Last login: Fri Dec 6 03:31:52 2019 on console
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
2018, 2019 The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 9.0_RC1 (GENERIC) #7: Thu Dec 5 02:28:51 JST 2019
Welcome to NetBSD!
You have mail.
Terminal type is vt100.
We recommend creating a non-root account and using su(1) for root access.
emips#
---
(BTW, postinstall(8) fix doesn't update /etc/rc.subr ?)
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index