Commit Graph

223781 Commits

Author SHA1 Message Date
reinoud 0e492f7c8d Regen 2014-01-13 08:24:17 +00:00
reinoud 4e9ecc3794 Add Atmel's SAM-BA programming port as found on Atmel's SAM3E (ARM CortexM3)
boards
2014-01-13 08:23:58 +00:00
reinoud 680415d3af Regen 2014-01-13 08:22:07 +00:00
reinoud 39e8846521 Add Future Bits as vendor code
Add Atmel SAM3E based microcontroller board "4Pi" by Future Bits
2014-01-13 08:21:41 +00:00
joerg 456d311f26 Try to reserve space in a way that results in the same allocation for
both LLVM and GNU as.
2014-01-12 20:31:50 +00:00
joerg b3c9683653 Improve assembler syntax. 2014-01-12 19:37:43 +00:00
joerg cb2eb1a336 Don't align random sections. Simplify by using .pushsection/.popsection. 2014-01-12 19:36:08 +00:00
riz 11beb836b0 Replace llx with PRIx64 and some llu with PRIu64 in format strings. 2014-01-12 17:49:30 +00:00
riz f664413dc2 Field width is an int, so cast the result of strlen() appropriately. 2014-01-12 17:48:59 +00:00
riz b3fba11357 Disable the extra-args warning for printf formats in dtrace.c 2014-01-12 17:48:25 +00:00
tsutsui 8c436a9898 Add empty LIBCRTI= as LIBCRT0 to build sa programs without installed DESTDIR.
XXX: probabry we should have bsd.saprog.mk or something.
2014-01-12 15:26:28 +00:00
tsutsui bb834b97ba Remove obsolete exec.c for a.out. It was superseded by loadfile() long ago. 2014-01-12 15:19:57 +00:00
joerg c9ec0f85a6 Revert, breaks the build due to missing rumpns_delay in librump.so. 2014-01-12 00:29:15 +00:00
jakllsch e45cb093f5 KASSERT that cmd is non-NULL in more places, and in a place that previously
did not use KASSERT to do the same thing.
2014-01-11 20:29:03 +00:00
jakllsch 056e4dba49 Do not take data from the controller in interrupt handler if we are polling. 2014-01-11 20:17:56 +00:00
martin 4f7da0ce19 New gcc can reuse stack frames for tail calls, so "main" is an optional
frame as well.
2014-01-11 19:48:22 +00:00
jakllsch 9815810895 remove unused and undefined .globl 2014-01-11 19:31:47 +00:00
martin 030abcd2da Make the output of the test case better suited for debugging (output full
backtrace before failing any unclear asserts)
2014-01-11 19:13:41 +00:00
christos f8e313ca14 bump openssl libraries 2014-01-11 18:38:00 +00:00
christos c37a92d75e new openssl 2014-01-11 18:35:48 +00:00
christos 4ef251b9dd merge conflicts 2014-01-11 18:34:36 +00:00
palle d3ad036880 No need to make CI_MMFSA depend on SUN4V since the ci_mmfsa field is always present in the cpu_info struct now 2014-01-11 18:31:35 +00:00
christos f38532950d regen 2014-01-11 18:21:45 +00:00
christos 363ca3aa58 zero %exc 2014-01-11 18:20:06 +00:00
christos 6d19262895 Changes between 1.0.1e and 1.0.1f [6 Jan 2014]
*) Fix for TLS record tampering bug. A carefully crafted invalid
     handshake could crash OpenSSL with a NULL pointer exception.
     Thanks to Anton Johansson for reporting this issues.
     (CVE-2013-4353)

  *) Keep original DTLS digest and encryption contexts in retransmission
     structures so we can use the previous session parameters if they need
     to be resent. (CVE-2013-6450)
     [Steve Henson]

  *) Add option SSL_OP_SAFARI_ECDHE_ECDSA_BUG (part of SSL_OP_ALL) which
     avoids preferring ECDHE-ECDSA ciphers when the client appears to be
     Safari on OS X.  Safari on OS X 10.8..10.8.3 advertises support for
     several ECDHE-ECDSA ciphers, but fails to negotiate them.  The bug
     is fixed in OS X 10.8.4, but Apple have ruled out both hot fixing
     10.8..10.8.3 and forcing users to upgrade to 10.8.4 or newer.
     [Rob Stradling, Adam Langley]
2014-01-11 18:11:10 +00:00
matt c3182005af Add hw.printfataltraps sysctl. Always print fatal traps for init. For all
other processes, only do so if cpu_printfataltraps is true.
2014-01-11 17:32:20 +00:00
christos 5a3fb681a6 Comment about missing stackframe member initialization (Richard Hansen)
I haven't studied the code, but I'm concerned that not initializing
sf->sf_edi could potentially leak a few bytes of information to a new
userspace process.
2014-01-11 17:14:00 +00:00
christos 09f4588963 stop ddb backtrace at Xsoftintr() (Richard Hansen)
Stop unwinding frames when db_stack_trace_print() encouters
Xsoftintr().  This avoids a recursive panic() due to an invalid
pointer dereference when a software interrupt panic()s.

Here's what happens without this change:

When db_stack_trace_print() runs during a panic() and db_nextframe()
encounters the Xsoftintr() frame, db_nextframe() does the following at
db_machdep.c:292:

  1. checks to see if there's a Xsoftintr() symbol (there is)
  2. checks to see if the frame corresponds to an interrupt (the
     symbol name begins with "Xsoft" so it does)

If both of the above are true (they are), db_nextframe() at
db_machdep.c:303 tries to get a pointer to a struct intrframe.
According to the comment at line 300, the second argument passed to
Xsoftintr() is a pointer to a struct intrframe.  However, the comment
and the corresponding code are not correct -- Xsoftintr() doesn't take
any arguments[1].  Attempting to fetch the second argument only yields
stack garbage, not a struct intrframe.  This causes db_machdep.c:307
to dereference a bad pointer, triggering the recursive panic().

[1] Xsoftintr() is called by Xspllower() which is called by splx()
    a.k.a. spllower().  Neither Xspllower() nor Xsoftintr() set up a
    standard frame when called (they don't do 'pushl %ebp; movl %esp,
    %ebp'), so Xsoftintr()'s %ebp is the same as splx()'s %ebp.  This
    makes splx()'s arguments look like Xsoftintr()'s arguments, and
    splx() does not take any arguments.

You can reproduce the recursive panic by reverting this change and
adding a call to panic() inside ipintr().  The backtrace will look
like the following (the line numbers you see might differ from these
line numbers -- this backtrace was generated from a slightly modified
version of the NetBSD 6.1 kernel):

    #0  vpanic (fmt=0xc0ba995b "trap", ap=0xdaa51730) at /usr/src/sys/kern/subr_prf.c:211
    #1  0xc0790529 in panic (fmt=0xc0ba995b "trap") at /usr/src/sys/kern/subr_prf.c:205
    #2  0xc07decbc in trap (frame=0xdaa517c0) at /usr/src/sys/arch/i386/i386/trap.c:396
    #3  0xc010cf48 in ?? () at /usr/src/sys/arch/i386/i386/vector.S:983
    #4  0xc02857f0 in db_get_value (addr=56, size=4, is_signed=false) at /usr/src/sys/ddb/db_access.c:72
    #5  0xc028a09a in db_nextframe (nextframe=0xdaa51b40, retaddr=0xdaa51b3c, arg0=0xdaa51b38, ip=0xdaa51b34, argp=0xdaa51d88, is_trap=0, pr=0xc07901b5 <printf>) at /usr/src/sys/arch/i386/i386/db_machdep.c:308
    #6  0xc028be2b in db_stack_trace_print (addr=<optimized out>, have_addr=true, count=65533, modif=0xc0bb44bf "", pr=0xc07901b5 <printf>) at /usr/src/sys/arch/x86/x86/db_trace.c:275
    #7  0xc07903cb in vpanic (fmt=0xc0b6ba76 "testing", ap=0xdaa51d4c) at /usr/src/sys/kern/subr_prf.c:296
    #8  0xc0790529 in panic (fmt=0xc0b6ba76 "testing") at /usr/src/sys/kern/subr_prf.c:205
    #9  0xc04e3d4f in ipintr () at /usr/src/sys/netinet/ip_input.c:369
    #10 0xc054ac0d in softint_execute (s=<optimized out>, si=<optimized out>, l=<optimized out>) at /usr/src/sys/kern/kern_softint.c:543
    #11 softint_dispatch (pinned=0xc4085560, s=4) at /usr/src/sys/kern/kern_softint.c:825
    #12 0xc0100fdb in ?? () at /usr/src/sys/arch/i386/i386/spl.S:390
    #13 0xc07d2e11 in tcp_usrreq (so=0xc40b0534, req=4, m=0x0, nam=0xc317ba00, control=0x0, l=0xc4085560) at /usr/src/sys/netinet/tcp_usrreq.c:615
    #14 0xc04bb300 in tcp_usrreq_wrapper (a=0xc40b0534, b=4, c=0x0, d=0xc317ba00, e=0x0, f=0xc4085560) at /usr/src/sys/netinet/in_proto.c:164
    #15 0xc0839006 in soconnect (so=0xc40b0534, nam=0xc317ba00, l=0xc4085560) at /usr/src/sys/kern/uipc_socket.c:821
    #16 0xc083c4ce in do_sys_connect (l=0xc4085560, fd=4, nam=0xc317ba00) at /usr/src/sys/kern/uipc_syscalls.c:371
    #17 0xc083dbeb in sys_connect (l=0xc4085560, uap=0xdbc27d00, retval=0xdbc27d28) at /usr/src/sys/kern/uipc_syscalls.c:350
    #18 0xc07b1b4a in sy_call (rval=0xdbc27d28, uap=0xdbc27d00, l=0xc4085560, sy=0xc0c2f018) at /usr/src/sys/sys/syscallvar.h:61
    #19 syscall (frame=0xdbc27d48) at /usr/src/sys/arch/x86/x86/syscall.c:179
    #20 0xc010056d in ?? () at /usr/src/sys/arch/i386/i386/locore.S:1160
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)
2014-01-11 17:11:50 +00:00
christos be5445b6bd Add softint case (Richard Hansen) 2014-01-11 17:10:40 +00:00
christos 71826933a0 Sleep 10 seconds before rebooting due to panic()
To give an opportunity to screencap a panic(), or pause a VM to attach
a debugger.  (Richard Hansen)
2014-01-11 17:07:45 +00:00
christos bf0a60cb4a remove vestige from old call to printk()
This line was introduced with a call to printk() in CVS revision
1.22.4.3 and should have been removed when the call to printk() was
removed in CVS revision 1.22.4.6.  (Richard Hansen)
2014-01-11 17:06:15 +00:00
christos fb4d88d5dd fix a comment (cpu_switch() -> cpu_switchto()) (Richard Hansen) 2014-01-11 17:05:17 +00:00
tsutsui 79b7a7600a Remove unused declarations. 2014-01-11 17:00:37 +00:00
tsutsui 544accc1f7 Remove tab nits. 2014-01-11 16:34:05 +00:00
christos b4a250d75c Reorder code to avoid use-after-free on error. From Maxime Villard 2014-01-11 16:31:20 +00:00
tsutsui 0dfe4134ab Misc KNF and cosmetics. 2014-01-11 15:51:02 +00:00
tsutsui b7bcae5276 ctually remove all references to obsolete stinger.h. 2014-01-11 14:35:15 +00:00
tsutsui 9cef42a9d3 Remove unused KernInter stuff. 2014-01-11 14:09:13 +00:00
nakayama a420884c46 Uncomment ifdef/endif and tabify. 2014-01-11 12:20:07 +00:00
tsutsui 92959260a4 Note recent visible luna68k bootloader updates. 2014-01-11 09:04:17 +00:00
tsutsui dba3cf8531 Bump version to denote support to pass boothowto and bootdev to kernel. 2014-01-11 08:20:51 +00:00
tsutsui 1b293e5d49 Add support to pass boothowto and bootdev info from bootloader to kernel.
Bootloader side changes:
- make boot command parse boothowto flags (-ads etc.)
- pass boothowto and bootdev info to the kernel via %d7 and %d6
  as the old 4.4BSD/luna68k kernel expected
- remove unused and now unnecessary "howto" (how_to_boot) command
- export and tweak make_device() in devopen.c to prepare bootdev info
- remove unused and commented out get_boot_device()
2014-01-11 08:08:23 +00:00
tsutsui 1a578d633f Add support to pass boothowto and bootdev info from bootloader to kernel.
Kernel side changes:
- use %d7 (boothowto) and %d6 (bootdev) to pass info and also use
  old macro in <sys/reboot.h> as ancient 4.4BSD did for simplicity
- add <machine/bootinfo.h> to define values as API to pass these info
- save boothowto and bootdev in registers right after zero'ing bss
- add MD device_register(9) to check booted_device per passed bootdev info
- merge old bootarg checks in rootconf() and luna68k_init() with
  tweaks for backward compatibility
  (direct boot a.out kernel from ROM monitor without bootloader still works)
2014-01-11 08:07:16 +00:00
matt f536e5d427 Don't pass -Wl,-x to ${CC} since that strips symbols needed by ARM BE.
Let the OBJCOPY strip them.
2014-01-11 02:45:52 +00:00
tsutsui f080c57575 Use the same address as LUNA to probe LANCE on LUNA-II.
It looks the device is mapped at both regions.
4.4BSD/luna68k probes it at 0xf1000000, but UniOS-Mach for LUNA-II
attaches the lance at 0xf0000000.  It is probably because
the UniOS needs to map DS1220 NVRAM (mapped at 0xf1000004 and
used to store the MAC address) to the different kernel page,
but there is no reason for us to use different addresses.
(Note our bootloader already use the same address for both machines.)

This change will make (forthcoming) booted device check easier.
2014-01-11 01:43:22 +00:00
matt 50d26cbd5b Don't use ${LD} -x because it screws up ARM BE.
Use ${OBJCOPY} ${OBJCOPYLIBFLAGS} instead so that $a/$d/$t are preserved.
2014-01-11 00:30:23 +00:00
matt 383316f200 Using ${LD} -x screws up BE arm. Use ${OBJCOPY} ${OBJCOPYLIBFLAGS} instead
so the $a/$t/$d symbols are preserved.
2014-01-11 00:18:15 +00:00
matt 964e3f260f byte swap the insn on BE8 it's LE in memory but needs to be BE to decode. 2014-01-10 23:52:53 +00:00
gson 341c8e68ed Remove comment that no longer applies. 2014-01-10 20:38:11 +00:00
njoly 5298a5a891 Regen. 2014-01-10 20:10:43 +00:00