kern/136123: device crypto breaks sparc64 kernel
Matthieu Michaud
matthieu at nxdomain.fr
Sun Jun 28 10:30:08 UTC 2009
>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 at 1f,0/ide at d/disk at 0,0:a
Boot loader: /boot/loader
Consoles: Open Firmware console
Booting with sun4u support.
FreeBSD/sparc64 bootstrap loader, Revision 1.0
(root at barry.nxdomain.fr, Sun Jun 28 00:17:04 CEST 2009)
bootpath="/pci at 1f,0/ide at d/disk at 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 at 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.
More information about the freebsd-bugs
mailing list