Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jun 2009 10:27:48 GMT
From:      Matthieu Michaud <matthieu@nxdomain.fr>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/136123: device crypto breaks sparc64 kernel
Message-ID:  <200906281027.n5SARm0d042600@www.freebsd.org>
Resent-Message-ID: <200906281030.n5SAU7YJ098264@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         136123
>Category:       kern
>Synopsis:       device crypto breaks sparc64 kernel
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 28 10:30:07 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Matthieu Michaud
>Release:        7.2-STABLE (28 Jun 2009)
>Organization:
>Environment:
no userland to type 'uname -a' ...
hardware is a sunblade 100 (UltraSparc-IIe)
>Description:
I wanted to add ipsec to a sunblade 100 box running 7.2-STABLE. So I added the following to a copy of GENERIC configuration file named ROUTER (attached) :

options         IPSEC
options         IPSEC_FILTERTUNNEL
device          crypto
device          enc

This new kernel cannot boot : 

>How-To-Repeat:
build a kernel with device crypto on sparc64 and try to boot it.
>Fix:
seems the same as : 

http://www.archivum.info/freebsd-current@freebsd.org/2008-03/00100/IPSEC_crypto_is_broken_in_FreeBSD_powerpc_7.0-RELEASE!

ideas to fix the issue are proposed but i have no idea which one is correct and how to apply them.

Patch attached with submission follows:

#
# GENERIC -- Generic kernel configuration file for FreeBSD/sparc64
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# For hardware specific information check HARDWARE.TXT
#
# $FreeBSD: src/sys/sparc64/conf/GENERIC,v 1.127.2.10 2009/06/07 05:49:37 yongari Exp $

cpu		SUN4U
ident		GENERIC

# To statically compile in device wiring instead of /boot/device.hints
#hints		"GENERIC.hints"		# Default places to look for devices.

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

# Platforms supported
#	At this time all platforms are supported, as-is.

options 	SCHED_4BSD		# 4BSD scheduler
#options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	MD_ROOT			# MD is a potential root device
options 	NFSCLIENT		# Network Filesystem Client
options 	NFSSERVER		# Network Filesystem Server
options 	NFSLOCKD		# Network Lock Manager
options 	NFS_ROOT		# NFS usable as /, requires NFSCLIENT
#options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_LABEL		# Provides labelization
options 	COMPAT_43TTY		# BSD 4.3 TTY compat [KEEP THIS!]
options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
options 	KTRACE			# ktrace(1) support
options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.
options 	AUDIT			# Security event auditing

# Standard busses
device		ebus
device		isa
device		pci
device		sbus
device		central
device		fhc

# ATA and ATAPI devices
device		ata
device		atadisk		# ATA disk drives
device		atapicd		# ATAPI CDROM drives

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		kbdmux		# keyboard multiplexer

# syscons is the default console driver, resembling an SCO console
device		sc
device		creator		# Creator, Creator3D and Elite3D framebuffers
device		machfb		# ATI Mach64 framebuffers
device		splash		# Splash screen and screen saver support
options 	KBD_INSTALL_CDEV # install a CDEV entry in /dev

#device		ofw_console	# Open Firmware console device

# Builtin hardware
device		auxio		# auxiliary I/O device
device		clkbrd		# Clock Board (blinkenlight on Sun Exx00)
device		genclock	# Generic clock interface
device		eeprom		# eeprom (really a front-end for the MK48Txx)
device		mk48txx		# Mostek MK48Txx clocks
device		rtc		# rtc (really a front-end for the MC146818)
device		mc146818	# Motorola MC146818 and compatible clocks

# Serial (COM) ports
device		puc		# Multi-channel uarts
device		scc		# Serial communications controllers.
device		uart		# Multi-uart driver

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
device		gem		# Sun GEM/Sun ERI/Apple GMAC


# Pseudo devices.
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		ppp		# Kernel PPP
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		md		# Memory "disks"
device		gif		# IPv6 and IPv4 tunneling
device		faith		# IPv6-to-IPv4 relaying (translation)
device		firmware	# firmware assist module
device		bpf		# Berkeley packet filter

# FireWire support
device		firewire	# FireWire bus code
device		fwe		# Ethernet over FireWire (non-standard!)
device		fwip		# IP over FireWire (RFC 2734,3146)
device		dcons		# Dumb console driver
device		dcons_crom	# Configuration ROM for dcons

device          pf
device          pflog

options         IPSEC
options         IPSEC_FILTERTUNNEL
device          crypto
device          enc


>Release-Note:
>Audit-Trail:
>Unformatted:
 >> FreeBSD/sparc64 boot block                                         
    Boot path:   /pci@1f,0/ide@d/disk@0,0:a                            
    Boot loader: /boot/loader                                          
 Consoles: Open Firmware console                                       
 
 Booting with sun4u support.
 
 FreeBSD/sparc64 bootstrap loader, Revision 1.0
 (root@barry.nxdomain.fr, Sun Jun 28 00:17:04 CEST 2009)
 bootpath="/pci@1f,0/ide@d/disk@0,0:a"                  
 Loading /boot/defaults/loader.conf                     
 /boot/kernel/kernel data=0x50f148+0x77bd8 syms=[0x8+0x69210+0x8+0x5b388]
 -                                                                       
 Hit [Enter] to boot immediately, or any other key for command prompt.   
 Booting [/boot/kernel/kernel]...                                        
 jumping to kernel entry at 0xc0068000.                                  
 Copyright (c) 1992-2009 The FreeBSD Project.                            
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
 FreeBSD is a registered trademark of The FreeBSD Foundation.
 FreeBSD 7.2-STABLE #1: Sun Jun 28 02:24:56 CEST 2009
     root@barry.nxdomain.fr:/usr/obj/sparc64/usr/src/sys/ROUTER
 real memory  = 268435456 (256 MB)
 avail memory = 248184832 (236 MB)
 cpu0: Sun Microsystems UltraSparc-IIe Processor (502.00 MHz CPU)
 kbd0 at kbdmux0
 nexus0: <Open Firmware Nexus device>
 cryptosoft1: <software crypto> mem 0x1fe00000000-0x1fe0000ffff,0x1fe01000000-0x1fe010000ff irq 2032,2030,2031,2021 on nexus0
 cryptosoft0: <software crypto> on nexus0
 nexus0: <syscons> type unknown (no driver attached)
 Timecounter "tick" frequency 502000000 Hz quality 1000
 Timecounters tick every 1.000 msec
 IPsec: Initialized Security Association Processing.
 Trying to mount root from ufs:/dev/ad0a
 
 Manual root filesystem specification:
   <fstype>:<device>  Mount <device> using filesystem <fstype>
                        eg. ufs:/dev/da0a
   ?                  List valid disk boot devices
   <empty line>       Abort manual input
 
 mountroot>
 
 
 A GENERIC kernel booted and run without any problem.
 
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906281027.n5SARm0d042600>