Date: Sat, 5 Oct 2013 15:27:09 +0000 (UTC) From: Mark Murray <markm@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r256063 - in projects/random_number_generator: bin/pkill share/man/man5 sys/amd64/conf sys/cam/ctl sys/compat/freebsd32 sys/dev/iscsi sys/i386/conf sys/mips/nlm/dev/sec sys/modules/ibco... Message-ID: <201310051527.r95FR9u0064303@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: markm Date: Sat Oct 5 15:27:08 2013 New Revision: 256063 URL: http://svnweb.freebsd.org/changeset/base/256063 Log: MFC- tracking commit. Added: projects/random_number_generator/usr.sbin/bhyve/ahci.h - copied unchanged from r256062, head/usr.sbin/bhyve/ahci.h projects/random_number_generator/usr.sbin/bhyve/block_if.c - copied unchanged from r256062, head/usr.sbin/bhyve/block_if.c projects/random_number_generator/usr.sbin/bhyve/block_if.h - copied unchanged from r256062, head/usr.sbin/bhyve/block_if.h projects/random_number_generator/usr.sbin/bhyve/pci_ahci.c - copied unchanged from r256062, head/usr.sbin/bhyve/pci_ahci.c Modified: projects/random_number_generator/bin/pkill/pkill.c projects/random_number_generator/share/man/man5/src.conf.5 projects/random_number_generator/sys/amd64/conf/NOTES projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c projects/random_number_generator/sys/compat/freebsd32/freebsd32.h projects/random_number_generator/sys/dev/iscsi/icl.c projects/random_number_generator/sys/dev/iscsi/iscsi.c projects/random_number_generator/sys/i386/conf/NOTES projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h projects/random_number_generator/sys/modules/ibcore/Makefile projects/random_number_generator/usr.bin/Makefile projects/random_number_generator/usr.bin/calendar/calendar.1 projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h projects/random_number_generator/usr.bin/svn/svn_private_config.h projects/random_number_generator/usr.sbin/bhyve/Makefile projects/random_number_generator/usr.sbin/bhyve/bhyverun.c projects/random_number_generator/usr.sbin/bhyve/bhyverun.h projects/random_number_generator/usr.sbin/bhyve/pit_8254.c projects/random_number_generator/usr.sbin/kldxref/kldxref.c Directory Properties: projects/random_number_generator/ (props changed) projects/random_number_generator/sys/ (props changed) projects/random_number_generator/usr.bin/calendar/ (props changed) projects/random_number_generator/usr.sbin/bhyve/ (props changed) Modified: projects/random_number_generator/bin/pkill/pkill.c ============================================================================== --- projects/random_number_generator/bin/pkill/pkill.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/bin/pkill/pkill.c Sat Oct 5 15:27:08 2013 (r256063) @@ -481,7 +481,6 @@ main(int argc, char **argv) * We skip P_SYSTEM processes to match ps(1) output. */ if ((kp->ki_flag & P_SYSTEM) == 0 && - kp->ki_loginclass != NULL && strcmp(kp->ki_loginclass, li->li_name) == 0) break; } Modified: projects/random_number_generator/share/man/man5/src.conf.5 ============================================================================== --- projects/random_number_generator/share/man/man5/src.conf.5 Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/share/man/man5/src.conf.5 Sat Oct 5 15:27:08 2013 (r256063) @@ -129,7 +129,7 @@ Set to not build .Xr authpf 8 . .It Va WITHOUT_BINUTILS .\" from FreeBSD: head/tools/build/options/WITHOUT_BINUTILS 255974 2013-10-01 17:40:56Z emaste -Set to not install binutils (as, c++-filt, gconv, +Set to not install binutils (as, c++-filt, gconv, ld, nm, objcopy, objdump, readelf, size and strip). .Bf -symbolic The option does not generally work for build targets, unless some alternative Modified: projects/random_number_generator/sys/amd64/conf/NOTES ============================================================================== --- projects/random_number_generator/sys/amd64/conf/NOTES Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/amd64/conf/NOTES Sat Oct 5 15:27:08 2013 (r256063) @@ -503,6 +503,7 @@ device asmc device tpm device padlock_rng # VIA Padlock RNG device rdrand_rng # Intel Bull Mountain RNG +device aesni # AES-NI OpenCrypto module # # Laptop/Notebook options: Modified: projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c ============================================================================== --- projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c Sat Oct 5 15:27:08 2013 (r256063) @@ -1255,7 +1255,7 @@ cfiscsi_init(void) cfiscsi_data_wait_zone = uma_zcreate("cfiscsi_data_wait", sizeof(struct cfiscsi_data_wait), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + UMA_ALIGN_PTR, 0); return (0); Modified: projects/random_number_generator/sys/compat/freebsd32/freebsd32.h ============================================================================== --- projects/random_number_generator/sys/compat/freebsd32/freebsd32.h Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/compat/freebsd32/freebsd32.h Sat Oct 5 15:27:08 2013 (r256063) @@ -175,6 +175,7 @@ struct stat32 { u_int32_t st_blksize; u_int32_t st_flags; u_int32_t st_gen; + int32_t st_lspare; struct timespec32 st_birthtim; unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32)); unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32)); Modified: projects/random_number_generator/sys/dev/iscsi/icl.c ============================================================================== --- projects/random_number_generator/sys/dev/iscsi/icl.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/dev/iscsi/icl.c Sat Oct 5 15:27:08 2013 (r256063) @@ -957,6 +957,7 @@ icl_pdu_queue(struct icl_pdu *ip) if (ic->ic_disconnecting || ic->ic_socket == NULL) { ICL_DEBUG("icl_pdu_queue on closed connection"); ICL_CONN_UNLOCK(ic); + icl_pdu_free(ip); return; } TAILQ_INSERT_TAIL(&ic->ic_to_send, ip, ip_next); @@ -1259,10 +1260,10 @@ icl_load(void) icl_conn_zone = uma_zcreate("icl_conn", sizeof(struct icl_conn), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + UMA_ALIGN_PTR, 0); icl_pdu_zone = uma_zcreate("icl_pdu", sizeof(struct icl_pdu), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + UMA_ALIGN_PTR, 0); refcount_init(&icl_ncons, 0); } Modified: projects/random_number_generator/sys/dev/iscsi/iscsi.c ============================================================================== --- projects/random_number_generator/sys/dev/iscsi/iscsi.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/dev/iscsi/iscsi.c Sat Oct 5 15:27:08 2013 (r256063) @@ -2030,7 +2030,7 @@ iscsi_load(void) iscsi_outstanding_zone = uma_zcreate("iscsi_outstanding", sizeof(struct iscsi_outstanding), NULL, NULL, NULL, NULL, - UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + UMA_ALIGN_PTR, 0); error = make_dev_p(MAKEDEV_CHECKNAME, &sc->sc_cdev, &iscsi_cdevsw, NULL, UID_ROOT, GID_WHEEL, 0600, "iscsi"); Modified: projects/random_number_generator/sys/i386/conf/NOTES ============================================================================== --- projects/random_number_generator/sys/i386/conf/NOTES Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/i386/conf/NOTES Sat Oct 5 15:27:08 2013 (r256063) @@ -857,6 +857,7 @@ device asmc device tpm device padlock_rng # VIA Padlock RNG device rdrand_rng # Intel Bull Mountain RNG +device aesni # AES-NI OpenCrypto module # # Laptop/Notebook options: Modified: projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c ============================================================================== --- projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c Sat Oct 5 15:27:08 2013 (r256063) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include <sys/systm.h> #include <sys/proc.h> #include <sys/errno.h> +#include <sys/endian.h> #include <sys/malloc.h> #include <sys/kernel.h> #include <sys/module.h> @@ -62,14 +63,14 @@ __FBSDID("$FreeBSD$"); #include <mips/nlm/hal/sys.h> #include <mips/nlm/hal/fmn.h> #include <mips/nlm/hal/nlmsaelib.h> -#include <mips/nlm/dev/sec/nlmrsalib.h> #include <mips/nlm/dev/sec/rsa_ucode.h> #include <mips/nlm/hal/cop2.h> #include <mips/nlm/hal/mips-extns.h> #include <mips/nlm/msgring.h> +#include <mips/nlm/dev/sec/nlmrsalib.h> #ifdef NLM_RSA_DEBUG -int print_krp_params(struct cryptkop *krp); +static void print_krp_params(struct cryptkop *krp); #endif static int xlp_rsa_init(struct xlp_rsa_softc *sc, int node); @@ -97,7 +98,7 @@ static device_method_t xlp_rsa_methods[] /* crypto device methods */ DEVMETHOD(cryptodev_newsession, xlp_rsa_newsession), - DEVMETHOD(cryptodev_freesession,xlp_rsa_freesession), + DEVMETHOD(cryptodev_freesession, xlp_rsa_freesession), DEVMETHOD(cryptodev_kprocess, xlp_rsa_kprocess), DEVMETHOD_END @@ -113,29 +114,24 @@ static devclass_t xlp_rsa_devclass; DRIVER_MODULE(nlmrsa, pci, xlp_rsa_driver, xlp_rsa_devclass, 0, 0); MODULE_DEPEND(nlmrsa, crypto, 1, 1, 1); -void -nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id, - struct nlm_fmn_msg *msg, void *data); - #ifdef NLM_RSA_DEBUG -int +static void print_krp_params(struct cryptkop *krp) { int i; - printf("krp->krp_op :%d\n",krp->krp_op); - printf("krp->krp_status :%d\n",krp->krp_status); - printf("krp->krp_iparams:%d\n",krp->krp_iparams); - printf("krp->krp_oparams:%d\n",krp->krp_oparams); - for (i=0;i<krp->krp_iparams+krp->krp_oparams;i++) { - printf("krp->krp_param[%d].crp_p :0x%llx\n",i, + printf("krp->krp_op :%d\n", krp->krp_op); + printf("krp->krp_status :%d\n", krp->krp_status); + printf("krp->krp_iparams:%d\n", krp->krp_iparams); + printf("krp->krp_oparams:%d\n", krp->krp_oparams); + for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) { + printf("krp->krp_param[%d].crp_p :0x%llx\n", i, (unsigned long long)krp->krp_param[i].crp_p); - printf("krp->krp_param[%d].crp_nbits :%d\n",i, + printf("krp->krp_param[%d].crp_nbits :%d\n", i, krp->krp_param[i].crp_nbits); - printf("krp->krp_param[%d].crp_nbytes :%d\n",i, - (krp->krp_param[i].crp_nbits+7)/8); + printf("krp->krp_param[%d].crp_nbytes :%d\n", i, + howmany(krp->krp_param[i].crp_nbits, 8)); } - return 0; } #endif @@ -143,7 +139,7 @@ static int xlp_rsa_init(struct xlp_rsa_softc *sc, int node) { struct xlp_rsa_command *cmd = NULL; - uint32_t size, fbvc, dstvc, endsel, regval; + uint32_t fbvc, dstvc, endsel, regval; struct nlm_fmn_msg m; int err, ret, i; uint64_t base; @@ -155,37 +151,36 @@ xlp_rsa_init(struct xlp_rsa_softc *sc, i printf("Couldn't register rsa/ecc msgring handler\n"); goto errout; } - m.msg[0] = m.msg[1] = m.msg[2] = m.msg[3] = 0; - fbvc = nlm_cpuid() / CMS_MAX_VCPU_VC; + fbvc = nlm_cpuid() * 4 + XLPGE_FB_VC; /* Do the CMS credit initialization */ /* Currently it is configured by default to 50 when kernel comes up */ - if ((cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF, - M_NOWAIT | M_ZERO)) == NULL) { - err = ENOMEM; - printf("Failed to allocate mem for cmd\n"); - goto errout; - } - size = sizeof(nlm_rsa_ucode_data); - if ((cmd->rsasrc = malloc(size, M_DEVBUF, M_NOWAIT | M_ZERO)) == NULL) { - err = ENOMEM; - printf("Failed to allocate mem for cmd->rsasrc\n"); - goto errout; - } - if (((uintptr_t)cmd->rsasrc & (XLP_L2L3_CACHELINE_SIZE - 1))) { - err = EINVAL; - printf("cmd->rsasrc is not cacheline aligned\n"); - goto errout; - } - memcpy(cmd->rsasrc, (uint8_t *)nlm_rsa_ucode_data, size); - m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, 0x70, 0, - vtophys(cmd->rsasrc)); - m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc, - vtophys(cmd->rsasrc)); - /* Software scratch pad */ - m.msg[2] = (uintptr_t)cmd; - +#if BYTE_ORDER == LITTLE_ENDIAN + for (i = 0; i < nitems(nlm_rsa_ucode_data); i++) + nlm_rsa_ucode_data[i] = htobe64(nlm_rsa_ucode_data[i]); +#endif for (dstvc = sc->rsaecc_vc_start; dstvc <= sc->rsaecc_vc_end; dstvc++) { + cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF, + M_NOWAIT | M_ZERO); + KASSERT(cmd != NULL, ("%s:cmd is NULL\n", __func__)); + cmd->rsasrc = contigmalloc(sizeof(nlm_rsa_ucode_data), + M_DEVBUF, + (M_WAITOK | M_ZERO), + 0UL /* low address */, -1UL /* high address */, + XLP_L2L3_CACHELINE_SIZE /* alignment */, + 0UL /* boundary */); + KASSERT(cmd->rsasrc != NULL, + ("%s:cmd->rsasrc is NULL\n", __func__)); + memcpy(cmd->rsasrc, nlm_rsa_ucode_data, + sizeof(nlm_rsa_ucode_data)); + m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, 0x70, 0, + vtophys(cmd->rsasrc)); + m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc, + vtophys(cmd->rsasrc)); + /* Software scratch pad */ + m.msg[2] = (uintptr_t)cmd; + m.msg[3] = 0; + ret = nlm_fmn_msgsend(dstvc, 3, FMN_SWCODE_RSA, &m); if (ret != 0) { err = -1; @@ -215,38 +210,42 @@ void nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id, struct nlm_fmn_msg *msg, void *data) { - struct xlp_rsa_command *cmd = NULL; - struct xlp_rsa_softc *sc = NULL; + struct xlp_rsa_command *cmd; + struct xlp_rsa_softc *sc; + struct crparam *outparam; + int ostart; KASSERT(code == FMN_SWCODE_RSA, - ("%s: bad code = %d, expected code = %d\n", __FUNCTION__, code, + ("%s: bad code = %d, expected code = %d\n", __func__, code, FMN_SWCODE_RSA)); - sc = (struct xlp_rsa_softc *)data; + sc = data; KASSERT(src_id >= sc->rsaecc_vc_start && src_id <= sc->rsaecc_vc_end, - ("%s: bad src_id = %d, expect %d - %d\n", __FUNCTION__, + ("%s: bad src_id = %d, expect %d - %d\n", __func__, src_id, sc->rsaecc_vc_start, sc->rsaecc_vc_end)); cmd = (struct xlp_rsa_command *)(uintptr_t)msg->msg[1]; - KASSERT(cmd != NULL, ("%s:cmd not received properly\n", - __FUNCTION__)); + KASSERT(cmd != NULL, ("%s:cmd not received properly\n", __func__)); - KASSERT(RSA_ERROR(msg->msg[0]) == 0, - ("%s: Message rcv msg0 %llx msg1 %llx err %x \n", __FUNCTION__, - (unsigned long long)msg->msg[0], (unsigned long long)msg->msg[1], - (int)RSA_ERROR(msg->msg[0]))); - - xlp_rsa_inp2hwformat(((uint8_t *)cmd->rsasrc+ - (cmd->rsaopsize*cmd->krp->krp_iparams)), - cmd->krp->krp_param[cmd->krp->krp_iparams].crp_p, - ((cmd->krp->krp_param[cmd->krp->krp_iparams].crp_nbits+7)/8), 1); - - if (cmd->krp != NULL) + if (RSA_ERROR(msg->msg[0]) != 0) { + printf("%s: Message rcv msg0 %llx msg1 %llx err %x \n", + __func__, (unsigned long long)msg->msg[0], + (unsigned long long)msg->msg[1], + (int)RSA_ERROR(msg->msg[0])); + cmd->krp->krp_status = EBADMSG; + } + + if (cmd->krp != NULL) { + ostart = cmd->krp->krp_iparams; + outparam = &cmd->krp->krp_param[ostart]; + xlp_rsa_inp2hwformat(cmd->rsasrc + cmd->rsaopsize * ostart, + outparam->crp_p, + howmany(outparam->crp_nbits, 8), + 1); crypto_kdone(cmd->krp); + } xlp_free_cmd_params(cmd); - - return; } static int @@ -279,7 +278,7 @@ xlp_rsa_attach(device_t dev) freq = nlm_set_device_frequency(node, DFS_DEVICE_RSA, 250); if (bootverbose) device_printf(dev, "RSA Freq: %dMHz\n", freq); - if(pci_get_device(dev) == PCI_DEVICE_ID_NLM_RSA) { + if (pci_get_device(dev) == PCI_DEVICE_ID_NLM_RSA) { device_set_desc(dev, "XLP RSA/ECC Accelerator"); if ((sc->sc_cid = crypto_get_driverid(dev, CRYPTOCAP_F_HARDWARE)) < 0) { @@ -287,7 +286,7 @@ xlp_rsa_attach(device_t dev) goto error_exit; } if (crypto_kregister(sc->sc_cid, CRK_MOD_EXP, 0) != 0) - printf("register failed for CRK_MOD_EXP\n"); + goto error_exit; base = nlm_get_rsa_pcibase(node); qstart = nlm_qidstart(base); @@ -302,7 +301,6 @@ xlp_rsa_attach(device_t dev) error_exit: return (ENXIO); - } /* @@ -323,8 +321,8 @@ static int xlp_rsa_newsession(device_t dev, u_int32_t *sidp, struct cryptoini *cri) { struct xlp_rsa_softc *sc = device_get_softc(dev); - int sesn; struct xlp_rsa_session *ses = NULL; + int sesn; if (sidp == NULL || cri == NULL || sc == NULL) return (EINVAL); @@ -346,7 +344,7 @@ xlp_rsa_newsession(device_t dev, u_int32 if (ses == NULL) { sesn = sc->sc_nsessions; - ses = malloc((sesn + 1)*sizeof(struct xlp_rsa_session), + ses = malloc((sesn + 1) * sizeof(*ses), M_DEVBUF, M_NOWAIT); if (ses == NULL) return (ENOMEM); @@ -392,43 +390,44 @@ xlp_rsa_freesession(device_t dev, u_int6 static void xlp_free_cmd_params(struct xlp_rsa_command *cmd) { - if (cmd->rsasrc != NULL) - free(cmd->rsasrc, M_DEVBUF); - if (cmd != NULL) - free(cmd, M_DEVBUF); - return; + + if (cmd == NULL) + return; + if (cmd->rsasrc != NULL) { + if (cmd->krp == NULL) /* Micro code load */ + contigfree(cmd->rsasrc, sizeof(nlm_rsa_ucode_data), + M_DEVBUF); + else + free(cmd->rsasrc, M_DEVBUF); + } + free(cmd, M_DEVBUF); } static int xlp_get_rsa_opsize(struct xlp_rsa_command *cmd, unsigned int bits) { - if (bits == 0) + + if (bits == 0 || bits > 8192) return (-1); /* XLP hardware expects always a fixed size with unused bytes * zeroed out in the input data */ if (bits <= 512) { cmd->rsatype = 0x40; - cmd->rsaopsize = (512/8); - return (0); - } else if ((bits > 512) && (bits <= 1024)) { + cmd->rsaopsize = 64; + } else if (bits <= 1024) { cmd->rsatype = 0x41; - cmd->rsaopsize = (1024/8); - return (0); - } else if ((bits > 1024) && (bits <= 2048)) { + cmd->rsaopsize = 128; + } else if (bits <= 2048) { cmd->rsatype = 0x42; - cmd->rsaopsize = (2048/8); - return (0); - } else if ((bits > 2048) && (bits <= 4096)) { + cmd->rsaopsize = 256; + } else if (bits <= 4096) { cmd->rsatype = 0x43; - cmd->rsaopsize = (4096/8); - return (0); - } else if ((bits > 4096) && (bits <= 8192)) { + cmd->rsaopsize = 512; + } else if (bits <= 8192) { cmd->rsatype = 0x44; - cmd->rsaopsize = (8192/8); - return (0); - } else { - return (-1); + cmd->rsaopsize = 1024; } + return (0); } static int @@ -436,25 +435,25 @@ xlp_rsa_inp2hwformat(uint8_t *src, uint8 uint8_t result) { uint32_t pdwords, pbytes; - int i=0, j=0, k=0; + int i, j, k; - pdwords = (paramsize / 8); - pbytes = (paramsize % 8); + pdwords = paramsize / 8; + pbytes = paramsize % 8; for (i = 0, k = 0; i < pdwords; i++) { /* copy dwords of inp/hw to hw/out format */ for (j = 7; j >= 0; j--, k++) - dst[(i*8)+j] = src[k]; + dst[i * 8 + j] = src[k]; } if (pbytes) { - if (!result) { + if (result == 0) { /* copy rem bytes of input data to hw format */ for (j = 7; k < paramsize; j--, k++) - dst[(i*8)+j] = src[k]; + dst[i * 8 + j] = src[k]; } else { /* copy rem bytes of hw data to exp output format */ for (j = 7; k < paramsize; j--, k++) - dst[k] = src[(i*8)+j]; + dst[k] = src[i * 8 + j]; } } @@ -469,15 +468,15 @@ nlm_crypto_complete_rsa_request(struct x struct nlm_fmn_msg m; int ret; - fbvc = nlm_cpuid() / CMS_MAX_VCPU_VC; - m.msg[0] = m.msg[1] = m.msg[2] = m.msg[3] = 0; + fbvc = nlm_cpuid() * 4 + XLPGE_FB_VC; m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, cmd->rsatype, cmd->rsafn, vtophys(cmd->rsasrc)); m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc, - vtophys(cmd->rsasrc + (cmd->rsaopsize * cmd->krp->krp_iparams))); + vtophys(cmd->rsasrc + cmd->rsaopsize * cmd->krp->krp_iparams)); /* Software scratch pad */ m.msg[2] = (uintptr_t)cmd; + m.msg[3] = 0; /* Send the message to rsa engine vc */ ret = nlm_fmn_msgsend(sc->rsaecc_vc_start, 3, FMN_SWCODE_RSA, &m); @@ -494,57 +493,57 @@ static int xlp_rsa_kprocess(device_t dev, struct cryptkop *krp, int hint) { struct xlp_rsa_softc *sc = device_get_softc(dev); - struct xlp_rsa_command *cmd = NULL; - int err = -1, i; + struct xlp_rsa_command *cmd; + struct crparam *kp; + int err, i; if (krp == NULL || krp->krp_callback == NULL) return (EINVAL); - if ((cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF, - M_NOWAIT | M_ZERO)) == NULL) { - err = ENOMEM; - goto errout; - } + cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF, + M_NOWAIT | M_ZERO); + KASSERT(cmd != NULL, ("%s:cmd is NULL\n", __func__)); cmd->krp = krp; #ifdef NLM_RSA_DEBUG print_krp_params(krp); #endif + err = EOPNOTSUPP; switch (krp->krp_op) { case CRK_MOD_EXP: if (krp->krp_iparams == 3 && krp->krp_oparams == 1) break; goto errout; default: - printf("Op:%d not yet supported\n", krp->krp_op); + device_printf(dev, "Op:%d not yet supported\n", krp->krp_op); goto errout; } - if ((xlp_get_rsa_opsize(cmd, - krp->krp_param[krp->krp_iparams-1].crp_nbits)) != 0) { + err = xlp_get_rsa_opsize(cmd, + krp->krp_param[krp->krp_iparams - 1].crp_nbits); + if (err != 0) { err = EINVAL; goto errout; } cmd->rsafn = 0; /* Mod Exp */ - if ((cmd->rsasrc = malloc((cmd->rsaopsize * - (krp->krp_iparams+krp->krp_oparams)), M_DEVBUF, - M_NOWAIT | M_ZERO)) == NULL) { + cmd->rsasrc = malloc( + cmd->rsaopsize * (krp->krp_iparams + krp->krp_oparams), + M_DEVBUF, + M_NOWAIT | M_ZERO); + if (cmd->rsasrc == NULL) { err = ENOMEM; goto errout; } - if (((uintptr_t)cmd->rsasrc & (XLP_L2L3_CACHELINE_SIZE - 1))) { - err = EINVAL; - goto errout; - } - for (i=0;i<krp->krp_iparams;i++) { - KASSERT(krp->krp_param[i].crp_nbits != 0, - ("%s: parameter[%d]'s length is zero\n", __FUNCTION__, i)); - xlp_rsa_inp2hwformat(krp->krp_param[i].crp_p, - ((uint8_t *)cmd->rsasrc+(i*cmd->rsaopsize)), - ((krp->krp_param[i].crp_nbits+7)/8), 0); + for (i = 0, kp = krp->krp_param; i < krp->krp_iparams; i++, kp++) { + KASSERT(kp->crp_nbits != 0, + ("%s: parameter[%d]'s length is zero\n", __func__, i)); + xlp_rsa_inp2hwformat(kp->crp_p, + cmd->rsasrc + i * cmd->rsaopsize, + howmany(kp->crp_nbits, 8), 0); } - if (nlm_crypto_complete_rsa_request(sc, cmd) != 0) + err = nlm_crypto_complete_rsa_request(sc, cmd); + if (err != 0) goto errout; return (0); Modified: projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h ============================================================================== --- projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h Sat Oct 5 15:27:08 2013 (r256063) @@ -30,12 +30,10 @@ #ifndef _NLMRSALIB_H_ #define _NLMRSALIB_H_ -#define XLP_RSA_SESSION(sid) ((sid) & 0x000007ff) -#define XLP_RSA_SID(crd,ses) (((crd) << 28) | ((ses) & 0x7ff)) +#define XLP_RSA_SESSION(sid) ((sid) & 0x000007ff) +#define XLP_RSA_SID(crd,ses) (((crd) << 28) | ((ses) & 0x7ff)) -#define NUM_RSAECC_VC 9 - -#define RSA_ERROR(__msg0) ((__msg0 >> 53) & 0x1f) +#define RSA_ERROR(msg0) (((msg0) >> 53) & 0x1f) struct xlp_rsa_session { uint32_t sessionid; @@ -65,4 +63,8 @@ struct xlp_rsa_softc { int rsaecc_vc_end; }; +void +nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id, + struct nlm_fmn_msg *msg, void *data); + #endif /* _NLMRSALIB_H_ */ Modified: projects/random_number_generator/sys/modules/ibcore/Makefile ============================================================================== --- projects/random_number_generator/sys/modules/ibcore/Makefile Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/sys/modules/ibcore/Makefile Sat Oct 5 15:27:08 2013 (r256063) @@ -11,7 +11,7 @@ SRCS+= agent.h core_priv.h mad.c notice. SRCS+= cache.c device.c mad_priv.h packer.c sysfs.c user_mad.c verbs.c SRCS+= cm.c fmr_pool.c mad_rmpp.c sa.h ucm.c uverbs.h cma.c SRCS+= linux_compat.c linux_radix.c linux_idr.c -SRCS+= vnode_if.h device_if.h bus_if.h pci_if.h opt_inet.h +SRCS+= vnode_if.h device_if.h bus_if.h pci_if.h opt_inet.h opt_inet6.h CFLAGS+= -I${.CURDIR}/../../ofed/drivers/infiniband/core CFLAGS+= -I${.CURDIR}/../mlx4ib Modified: projects/random_number_generator/usr.bin/Makefile ============================================================================== --- projects/random_number_generator/usr.bin/Makefile Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.bin/Makefile Sat Oct 5 15:27:08 2013 (r256063) @@ -366,13 +366,9 @@ SUBDIR+= users SUBDIR+= who .endif -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" || \ - ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "i386" || \ - (${MACHINE_ARCH} == "armv6" && ${COMPILER_TYPE} == "clang") .if ${MK_SVN} == "yes" || ${MK_SVNLITE} == "yes" SUBDIR+= svn .endif -.endif .include <bsd.arch.inc.mk> Modified: projects/random_number_generator/usr.bin/calendar/calendar.1 ============================================================================== --- projects/random_number_generator/usr.bin/calendar/calendar.1 Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.bin/calendar/calendar.1 Sat Oct 5 15:27:08 2013 (r256063) @@ -180,7 +180,7 @@ a continuation of the previous line. The .Nm file is preprocessed by a limited subset of -.Xr cpp 1 +.Xr cpp 1 internally, allowing the inclusion of shared files such as lists of company holidays or meetings. This limited subset consists of \fB#include #ifndef #endif\fR and \fB#define\fR. Modified: projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h ============================================================================== --- projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h Sat Oct 5 15:27:08 2013 (r256063) @@ -97,7 +97,9 @@ #define HAVE_ARPA_INET_H 1 /* Define if compiler provides atomic builtins */ +#if !defined(__mips__) && !defined(__arm__) #define HAVE_ATOMIC_BUILTINS 1 +#endif /* Define if BONE_VERSION is defined in sys/socket.h */ /* #undef HAVE_BONE_VERSION */ Modified: projects/random_number_generator/usr.bin/svn/svn_private_config.h ============================================================================== --- projects/random_number_generator/usr.bin/svn/svn_private_config.h Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.bin/svn/svn_private_config.h Sat Oct 5 15:27:08 2013 (r256063) @@ -153,7 +153,7 @@ #define SVN_FS_WANT_DB_PATCH 14 /* Define if compiler provides atomic builtins */ -#define SVN_HAS_ATOMIC_BUILTINS 1 +#define SVN_HAS_ATOMIC_BUILTINS 0 /* Is GNOME Keyring support enabled? */ /* #undef SVN_HAVE_GNOME_KEYRING */ Modified: projects/random_number_generator/usr.sbin/bhyve/Makefile ============================================================================== --- projects/random_number_generator/usr.sbin/bhyve/Makefile Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.sbin/bhyve/Makefile Sat Oct 5 15:27:08 2013 (r256063) @@ -6,8 +6,8 @@ PROG= bhyve DEBUG_FLAGS= -g -O0 -SRCS= acpi.c atpic.c bhyverun.c consport.c dbgport.c elcr.c inout.c -SRCS+= ioapic.c mem.c mevent.c mptbl.c +SRCS= acpi.c atpic.c bhyverun.c block_if.c consport.c dbgport.c elcr.c +SRCS+= inout.c ioapic.c mem.c mevent.c mptbl.c pci_ahci.c SRCS+= pci_emul.c pci_hostbridge.c pci_passthru.c pci_virtio_block.c SRCS+= pci_virtio_net.c pci_uart.c pit_8254.c pmtmr.c post.c rtc.c SRCS+= virtio.c xmsr.c spinup_ap.c Copied: projects/random_number_generator/usr.sbin/bhyve/ahci.h (from r256062, head/usr.sbin/bhyve/ahci.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/random_number_generator/usr.sbin/bhyve/ahci.h Sat Oct 5 15:27:08 2013 (r256063, copy of r256062, head/usr.sbin/bhyve/ahci.h) @@ -0,0 +1,304 @@ +/*- + * Copyright (c) 1998 - 2008 Søren Schmidt <sos@FreeBSD.org> + * Copyright (c) 2009-2012 Alexander Motin <mav@FreeBSD.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * without modification, immediately at the beginning of the file. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _AHCI_H_ +#define _AHCI_H_ + +/* ATA register defines */ +#define ATA_DATA 0 /* (RW) data */ + +#define ATA_FEATURE 1 /* (W) feature */ +#define ATA_F_DMA 0x01 /* enable DMA */ +#define ATA_F_OVL 0x02 /* enable overlap */ + +#define ATA_COUNT 2 /* (W) sector count */ + +#define ATA_SECTOR 3 /* (RW) sector # */ +#define ATA_CYL_LSB 4 /* (RW) cylinder# LSB */ +#define ATA_CYL_MSB 5 /* (RW) cylinder# MSB */ +#define ATA_DRIVE 6 /* (W) Sector/Drive/Head */ +#define ATA_D_LBA 0x40 /* use LBA addressing */ +#define ATA_D_IBM 0xa0 /* 512 byte sectors, ECC */ + +#define ATA_COMMAND 7 /* (W) command */ + +#define ATA_ERROR 8 /* (R) error */ +#define ATA_E_ILI 0x01 /* illegal length */ +#define ATA_E_NM 0x02 /* no media */ +#define ATA_E_ABORT 0x04 /* command aborted */ +#define ATA_E_MCR 0x08 /* media change request */ +#define ATA_E_IDNF 0x10 /* ID not found */ +#define ATA_E_MC 0x20 /* media changed */ +#define ATA_E_UNC 0x40 /* uncorrectable data */ +#define ATA_E_ICRC 0x80 /* UDMA crc error */ +#define ATA_E_ATAPI_SENSE_MASK 0xf0 /* ATAPI sense key mask */ + +#define ATA_IREASON 9 /* (R) interrupt reason */ +#define ATA_I_CMD 0x01 /* cmd (1) | data (0) */ +#define ATA_I_IN 0x02 /* read (1) | write (0) */ +#define ATA_I_RELEASE 0x04 /* released bus (1) */ +#define ATA_I_TAGMASK 0xf8 /* tag mask */ + +#define ATA_STATUS 10 /* (R) status */ +#define ATA_ALTSTAT 11 /* (R) alternate status */ +#define ATA_S_ERROR 0x01 /* error */ +#define ATA_S_INDEX 0x02 /* index */ +#define ATA_S_CORR 0x04 /* data corrected */ +#define ATA_S_DRQ 0x08 /* data request */ +#define ATA_S_DSC 0x10 /* drive seek completed */ +#define ATA_S_SERVICE 0x10 /* drive needs service */ +#define ATA_S_DWF 0x20 /* drive write fault */ +#define ATA_S_DMA 0x20 /* DMA ready */ +#define ATA_S_READY 0x40 /* drive ready */ +#define ATA_S_BUSY 0x80 /* busy */ + +#define ATA_CONTROL 12 /* (W) control */ +#define ATA_A_IDS 0x02 /* disable interrupts */ +#define ATA_A_RESET 0x04 /* RESET controller */ +#define ATA_A_4BIT 0x08 /* 4 head bits */ +#define ATA_A_HOB 0x80 /* High Order Byte enable */ + +/* SATA register defines */ +#define ATA_SSTATUS 13 +#define ATA_SS_DET_MASK 0x0000000f +#define ATA_SS_DET_NO_DEVICE 0x00000000 +#define ATA_SS_DET_DEV_PRESENT 0x00000001 +#define ATA_SS_DET_PHY_ONLINE 0x00000003 +#define ATA_SS_DET_PHY_OFFLINE 0x00000004 + +#define ATA_SS_SPD_MASK 0x000000f0 +#define ATA_SS_SPD_NO_SPEED 0x00000000 +#define ATA_SS_SPD_GEN1 0x00000010 +#define ATA_SS_SPD_GEN2 0x00000020 +#define ATA_SS_SPD_GEN3 0x00000040 + +#define ATA_SS_IPM_MASK 0x00000f00 +#define ATA_SS_IPM_NO_DEVICE 0x00000000 +#define ATA_SS_IPM_ACTIVE 0x00000100 +#define ATA_SS_IPM_PARTIAL 0x00000200 +#define ATA_SS_IPM_SLUMBER 0x00000600 + +#define ATA_SERROR 14 +#define ATA_SE_DATA_CORRECTED 0x00000001 +#define ATA_SE_COMM_CORRECTED 0x00000002 +#define ATA_SE_DATA_ERR 0x00000100 +#define ATA_SE_COMM_ERR 0x00000200 +#define ATA_SE_PROT_ERR 0x00000400 +#define ATA_SE_HOST_ERR 0x00000800 +#define ATA_SE_PHY_CHANGED 0x00010000 +#define ATA_SE_PHY_IERROR 0x00020000 +#define ATA_SE_COMM_WAKE 0x00040000 +#define ATA_SE_DECODE_ERR 0x00080000 +#define ATA_SE_PARITY_ERR 0x00100000 +#define ATA_SE_CRC_ERR 0x00200000 +#define ATA_SE_HANDSHAKE_ERR 0x00400000 +#define ATA_SE_LINKSEQ_ERR 0x00800000 +#define ATA_SE_TRANSPORT_ERR 0x01000000 +#define ATA_SE_UNKNOWN_FIS 0x02000000 +#define ATA_SE_EXCHANGED 0x04000000 + +#define ATA_SCONTROL 15 +#define ATA_SC_DET_MASK 0x0000000f +#define ATA_SC_DET_IDLE 0x00000000 +#define ATA_SC_DET_RESET 0x00000001 +#define ATA_SC_DET_DISABLE 0x00000004 + +#define ATA_SC_SPD_MASK 0x000000f0 +#define ATA_SC_SPD_NO_SPEED 0x00000000 +#define ATA_SC_SPD_SPEED_GEN1 0x00000010 +#define ATA_SC_SPD_SPEED_GEN2 0x00000020 +#define ATA_SC_SPD_SPEED_GEN3 0x00000040 + +#define ATA_SC_IPM_MASK 0x00000f00 +#define ATA_SC_IPM_NONE 0x00000000 +#define ATA_SC_IPM_DIS_PARTIAL 0x00000100 +#define ATA_SC_IPM_DIS_SLUMBER 0x00000200 + +#define ATA_SACTIVE 16 + +#define AHCI_MAX_PORTS 32 +#define AHCI_MAX_SLOTS 32 + +/* SATA AHCI v1.0 register defines */ +#define AHCI_CAP 0x00 +#define AHCI_CAP_NPMASK 0x0000001f +#define AHCI_CAP_SXS 0x00000020 +#define AHCI_CAP_EMS 0x00000040 +#define AHCI_CAP_CCCS 0x00000080 +#define AHCI_CAP_NCS 0x00001F00 +#define AHCI_CAP_NCS_SHIFT 8 +#define AHCI_CAP_PSC 0x00002000 +#define AHCI_CAP_SSC 0x00004000 +#define AHCI_CAP_PMD 0x00008000 +#define AHCI_CAP_FBSS 0x00010000 +#define AHCI_CAP_SPM 0x00020000 +#define AHCI_CAP_SAM 0x00080000 +#define AHCI_CAP_ISS 0x00F00000 +#define AHCI_CAP_ISS_SHIFT 20 +#define AHCI_CAP_SCLO 0x01000000 +#define AHCI_CAP_SAL 0x02000000 +#define AHCI_CAP_SALP 0x04000000 +#define AHCI_CAP_SSS 0x08000000 +#define AHCI_CAP_SMPS 0x10000000 +#define AHCI_CAP_SSNTF 0x20000000 +#define AHCI_CAP_SNCQ 0x40000000 +#define AHCI_CAP_64BIT 0x80000000 + +#define AHCI_GHC 0x04 +#define AHCI_GHC_AE 0x80000000 +#define AHCI_GHC_MRSM 0x00000004 +#define AHCI_GHC_IE 0x00000002 +#define AHCI_GHC_HR 0x00000001 + +#define AHCI_IS 0x08 +#define AHCI_PI 0x0c +#define AHCI_VS 0x10 + +#define AHCI_CCCC 0x14 +#define AHCI_CCCC_TV_MASK 0xffff0000 +#define AHCI_CCCC_TV_SHIFT 16 +#define AHCI_CCCC_CC_MASK 0x0000ff00 +#define AHCI_CCCC_CC_SHIFT 8 +#define AHCI_CCCC_INT_MASK 0x000000f8 +#define AHCI_CCCC_INT_SHIFT 3 +#define AHCI_CCCC_EN 0x00000001 +#define AHCI_CCCP 0x18 + +#define AHCI_EM_LOC 0x1C +#define AHCI_EM_CTL 0x20 +#define AHCI_EM_MR 0x00000001 +#define AHCI_EM_TM 0x00000100 +#define AHCI_EM_RST 0x00000200 +#define AHCI_EM_LED 0x00010000 +#define AHCI_EM_SAFTE 0x00020000 +#define AHCI_EM_SES2 0x00040000 +#define AHCI_EM_SGPIO 0x00080000 +#define AHCI_EM_SMB 0x01000000 +#define AHCI_EM_XMT 0x02000000 +#define AHCI_EM_ALHD 0x04000000 +#define AHCI_EM_PM 0x08000000 + +#define AHCI_CAP2 0x24 +#define AHCI_CAP2_BOH 0x00000001 +#define AHCI_CAP2_NVMP 0x00000002 +#define AHCI_CAP2_APST 0x00000004 + +#define AHCI_OFFSET 0x100 +#define AHCI_STEP 0x80 + +#define AHCI_P_CLB 0x00 +#define AHCI_P_CLBU 0x04 +#define AHCI_P_FB 0x08 +#define AHCI_P_FBU 0x0c +#define AHCI_P_IS 0x10 +#define AHCI_P_IE 0x14 +#define AHCI_P_IX_DHR 0x00000001 +#define AHCI_P_IX_PS 0x00000002 +#define AHCI_P_IX_DS 0x00000004 +#define AHCI_P_IX_SDB 0x00000008 +#define AHCI_P_IX_UF 0x00000010 +#define AHCI_P_IX_DP 0x00000020 +#define AHCI_P_IX_PC 0x00000040 +#define AHCI_P_IX_MP 0x00000080 + +#define AHCI_P_IX_PRC 0x00400000 +#define AHCI_P_IX_IPM 0x00800000 +#define AHCI_P_IX_OF 0x01000000 +#define AHCI_P_IX_INF 0x04000000 +#define AHCI_P_IX_IF 0x08000000 +#define AHCI_P_IX_HBD 0x10000000 +#define AHCI_P_IX_HBF 0x20000000 +#define AHCI_P_IX_TFE 0x40000000 +#define AHCI_P_IX_CPD 0x80000000 + +#define AHCI_P_CMD 0x18 +#define AHCI_P_CMD_ST 0x00000001 +#define AHCI_P_CMD_SUD 0x00000002 +#define AHCI_P_CMD_POD 0x00000004 +#define AHCI_P_CMD_CLO 0x00000008 +#define AHCI_P_CMD_FRE 0x00000010 +#define AHCI_P_CMD_CCS_MASK 0x00001f00 +#define AHCI_P_CMD_CCS_SHIFT 8 +#define AHCI_P_CMD_ISS 0x00002000 +#define AHCI_P_CMD_FR 0x00004000 +#define AHCI_P_CMD_CR 0x00008000 +#define AHCI_P_CMD_CPS 0x00010000 +#define AHCI_P_CMD_PMA 0x00020000 +#define AHCI_P_CMD_HPCP 0x00040000 +#define AHCI_P_CMD_MPSP 0x00080000 +#define AHCI_P_CMD_CPD 0x00100000 +#define AHCI_P_CMD_ESP 0x00200000 +#define AHCI_P_CMD_FBSCP 0x00400000 +#define AHCI_P_CMD_APSTE 0x00800000 +#define AHCI_P_CMD_ATAPI 0x01000000 +#define AHCI_P_CMD_DLAE 0x02000000 +#define AHCI_P_CMD_ALPE 0x04000000 +#define AHCI_P_CMD_ASP 0x08000000 +#define AHCI_P_CMD_ICC_MASK 0xf0000000 +#define AHCI_P_CMD_NOOP 0x00000000 +#define AHCI_P_CMD_ACTIVE 0x10000000 +#define AHCI_P_CMD_PARTIAL 0x20000000 +#define AHCI_P_CMD_SLUMBER 0x60000000 + +#define AHCI_P_TFD 0x20 +#define AHCI_P_SIG 0x24 +#define AHCI_P_SSTS 0x28 +#define AHCI_P_SCTL 0x2c +#define AHCI_P_SERR 0x30 +#define AHCI_P_SACT 0x34 +#define AHCI_P_CI 0x38 +#define AHCI_P_SNTF 0x3C +#define AHCI_P_FBS 0x40 +#define AHCI_P_FBS_EN 0x00000001 +#define AHCI_P_FBS_DEC 0x00000002 +#define AHCI_P_FBS_SDE 0x00000004 +#define AHCI_P_FBS_DEV 0x00000f00 +#define AHCI_P_FBS_DEV_SHIFT 8 +#define AHCI_P_FBS_ADO 0x0000f000 +#define AHCI_P_FBS_ADO_SHIFT 12 +#define AHCI_P_FBS_DWE 0x000f0000 +#define AHCI_P_FBS_DWE_SHIFT 16 + +/* Just to be sure, if building as module. */ +#if MAXPHYS < 512 * 1024 +#undef MAXPHYS +#define MAXPHYS 512 * 1024 +#endif +/* Pessimistic prognosis on number of required S/G entries */ +#define AHCI_SG_ENTRIES (roundup(btoc(MAXPHYS) + 1, 8)) +/* Command list. 32 commands. First, 1Kbyte aligned. */ +#define AHCI_CL_OFFSET 0 +#define AHCI_CL_SIZE 32 +/* Command tables. Up to 32 commands, Each, 128byte aligned. */ +#define AHCI_CT_OFFSET (AHCI_CL_OFFSET + AHCI_CL_SIZE * AHCI_MAX_SLOTS) +#define AHCI_CT_SIZE (128 + AHCI_SG_ENTRIES * 16) +/* Total main work area. */ +#define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots) + +#endif /* _AHCI_H_ */ Modified: projects/random_number_generator/usr.sbin/bhyve/bhyverun.c ============================================================================== --- projects/random_number_generator/usr.sbin/bhyve/bhyverun.c Fri Oct 4 23:29:07 2013 (r256062) +++ projects/random_number_generator/usr.sbin/bhyve/bhyverun.c Sat Oct 5 15:27:08 2013 (r256063) @@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$"); #include <unistd.h> #include <assert.h> #include <errno.h> -#include <signal.h> #include <pthread.h> #include <pthread_np.h> @@ -61,9 +60,6 @@ __FBSDID("$FreeBSD$"); #include "spinup_ap.h" #include "rtc.h" -#define DEFAULT_GUEST_HZ 100 -#define DEFAULT_GUEST_TSLICE 200 - #define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */ #define VMEXIT_SWITCH 0 /* force vcpu switch in mux mode */ @@ -77,14 +73,11 @@ __FBSDID("$FreeBSD$"); typedef int (*vmexit_handler_t)(struct vmctx *, struct vm_exit *, int *vcpu); -int guest_tslice = DEFAULT_GUEST_TSLICE; -int guest_hz = DEFAULT_GUEST_HZ; char *vmname; int guest_ncpus; static int pincpu = -1; -static int guest_vcpu_mux; static int guest_vmexit_on_hlt, guest_vmexit_on_pause, disable_x2apic; static int foundcpus; @@ -102,7 +95,7 @@ static void vm_loop(struct vmctx *ctx, i struct vm_exit vmexit[VM_MAXCPU]; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310051527.r95FR9u0064303>