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