Merge ^/head r276347 through r276356.
This commit is contained in:
parent
6a83300648
commit
0cdb9f6679
@ -6185,7 +6185,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
||||
howto = NULL;
|
||||
if (r_type < R_PPC_max)
|
||||
howto = ppc_elf_howto_table[r_type];
|
||||
switch (r_type)
|
||||
switch ((int) r_type)
|
||||
{
|
||||
default:
|
||||
(*_bfd_error_handler)
|
||||
|
@ -37,14 +37,16 @@
|
||||
|
||||
/*
|
||||
* Define cache functions used by startup code, which counts on the fact that
|
||||
* only r0-r4,r12 (ip) are modified and no stack space is used. This set
|
||||
* of function must be called with interrupts disabled and don't follow
|
||||
* ARM ABI (cannot be called form C code.
|
||||
* Moreover, it works only with caches integrated to CPU (accessible via CP15).
|
||||
* only r0-r3,r12 (ip) are modified and no stack space is used. These functions
|
||||
* must be called with interrupts disabled. Moreover, these work only with
|
||||
* caches integrated to CPU (accessible via CP15); systems with an external L2
|
||||
* cache controller such as a PL310 need separate calls to that device driver
|
||||
* to affect L2 caches. This is not a factor during early kernel startup, as
|
||||
* any external L2 cache controller has not been enabled yet.
|
||||
*/
|
||||
|
||||
/* Invalidate D cache to PoC. (aka all cache levels)*/
|
||||
ASENTRY(dcache_inv_poc_all)
|
||||
ASENTRY_NP(dcache_inv_poc_all)
|
||||
mrc CP15_CLIDR(r0)
|
||||
ands r0, r0, #0x07000000
|
||||
mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */
|
||||
@ -96,7 +98,7 @@ ASENTRY(dcache_inv_poc_all)
|
||||
END(dcache_inv_poc_all)
|
||||
|
||||
/* Invalidate D cache to PoU. (aka L1 cache only)*/
|
||||
ASENTRY(dcache_inv_pou_all)
|
||||
ASENTRY_NP(dcache_inv_pou_all)
|
||||
mrc CP15_CLIDR(r0)
|
||||
ands r0, r0, #0x07000000
|
||||
mov r0, r0, lsr #26 /* Get LoUU (naturally aligned) */
|
||||
@ -147,7 +149,7 @@ ASENTRY(dcache_inv_pou_all)
|
||||
END(dcache_inv_pou_all)
|
||||
|
||||
/* Write back and Invalidate D cache to PoC. */
|
||||
ASENTRY(dcache_wbinv_poc_all)
|
||||
ASENTRY_NP(dcache_wbinv_poc_all)
|
||||
mrc CP15_CLIDR(r0)
|
||||
ands r0, r0, #0x07000000
|
||||
mov r0, r0, lsr #23 /* Get LoC (naturally aligned) */
|
||||
|
@ -15,7 +15,7 @@ MAN=
|
||||
CFLAGS= -ffreestanding -msoft-float -Os \
|
||||
-I${.CURDIR}/../../common -I${.CURDIR}/../../../ \
|
||||
-D_STANDALONE
|
||||
LDFLAGS=-nostdlib -static -N
|
||||
LDFLAGS=-nostdlib -static -Wl,-N
|
||||
|
||||
.include "${.CURDIR}/../Makefile.inc"
|
||||
.PATH: ${.CURDIR}/../../../libkern ${.CURDIR}/../../../../lib/libc/powerpc/gen ${.CURDIR}
|
||||
|
@ -82,7 +82,8 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <dev/virtio/mmio/virtio_mmio.h>
|
||||
#include <dev/virtio/network/virtio_net.h>
|
||||
#include <dev/virtio/virtio.h>
|
||||
#include <dev/virtio/virtio_ids.h>
|
||||
#include <dev/virtio/virtio_config.h>
|
||||
#include <dev/virtio/virtio_ring.h>
|
||||
|
||||
#include "pio_if.h"
|
||||
|
@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/ofw/ofw_bus_subr.h>
|
||||
|
||||
#include <dev/beri/virtio/virtio.h>
|
||||
#include <dev/virtio/virtio.h>
|
||||
#include <dev/virtio/virtqueue.h>
|
||||
#include <dev/virtio/virtio_ring.h>
|
||||
#include <dev/altera/pio/pio.h>
|
||||
|
@ -67,7 +67,8 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/altera/pio/pio.h>
|
||||
#include <dev/virtio/mmio/virtio_mmio.h>
|
||||
#include <dev/virtio/block/virtio_blk.h>
|
||||
#include <dev/virtio/virtio.h>
|
||||
#include <dev/virtio/virtio_ids.h>
|
||||
#include <dev/virtio/virtio_config.h>
|
||||
#include <dev/virtio/virtio_ring.h>
|
||||
|
||||
#include "pio_if.h"
|
||||
|
@ -137,8 +137,8 @@ static const struct pci_id pci_ns8250_ids[] = {
|
||||
"MosChip MCS9901 PCIe to Peripheral Controller", 0x10 },
|
||||
{ 0x9710, 0x9904, 0xa000, 0x1000,
|
||||
"MosChip MCS9904 PCIe to Peripheral Controller", 0x10 },
|
||||
{ 0x9710, 0x9922, 0xffff, 0,
|
||||
"MosChip MCS9922 Multi I/O Controller", 0x10 },
|
||||
{ 0x9710, 0x9922, 0xa000, 0x1000,
|
||||
"MosChip MCS9922 PCIe to Peripheral Controller", 0x10 },
|
||||
{ 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 },
|
||||
{ 0xffff, 0, 0xffff, 0, NULL, 0, 0}
|
||||
};
|
||||
|
@ -1096,9 +1096,16 @@ nfscl_checksattr(struct vattr *vap, struct nfsvattr *nvap)
|
||||
* us to do a SETATTR RPC. FreeBSD servers store the verifier
|
||||
* in atime, but we can't really assume that all servers will
|
||||
* so we ensure that our SETATTR sets both atime and mtime.
|
||||
* Set the VA_UTIMES_NULL flag for this case, so that
|
||||
* the server's time will be used. This is needed to
|
||||
* work around a bug in some Solaris servers, where
|
||||
* setting the time TOCLIENT causes the Setattr RPC
|
||||
* to return NFS_OK, but not set va_mode.
|
||||
*/
|
||||
if (vap->va_mtime.tv_sec == VNOVAL)
|
||||
if (vap->va_mtime.tv_sec == VNOVAL) {
|
||||
vfs_timestamp(&vap->va_mtime);
|
||||
vap->va_vaflags |= VA_UTIMES_NULL;
|
||||
}
|
||||
if (vap->va_atime.tv_sec == VNOVAL)
|
||||
vap->va_atime = vap->va_mtime;
|
||||
return (1);
|
||||
|
Loading…
Reference in New Issue
Block a user