1/* 2 * Copyright (c) 1998,1999,2000,2001 Katsushi Kobayashi and Hidetosh Shimokawa 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 16 unchanged lines hidden (view full) --- 25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 30 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 * |
33 * $FreeBSD: head/sys/dev/firewire/sbp.c 107653 2002-12-06 02:17:30Z simokawa $ |
34 * 35 */ 36 37#include <sys/param.h> 38#include <sys/systm.h> 39#include <sys/module.h> 40#include <sys/bus.h> 41#include <sys/mbuf.h> --- 82 unchanged lines hidden (view full) --- 124 /* F */ "TARGET RESET" 125}; 126 127#define ORB_RES_CMPL 0 128#define ORB_RES_FAIL 1 129#define ORB_RES_ILLE 2 130#define ORB_RES_VEND 3 131 |
132static int debug = 0; |
133static int auto_login = 1; 134static int max_speed = 2; 135 136SYSCTL_DECL(_hw_firewire); 137SYSCTL_NODE(_hw_firewire, OID_AUTO, sbp, CTLFLAG_RD, 0, "SBP-II Subsystem"); 138SYSCTL_INT(_debug, OID_AUTO, sbp_debug, CTLFLAG_RW, &debug, 0, 139 "SBP debug flag"); 140SYSCTL_INT(_hw_firewire_sbp, OID_AUTO, auto_login, CTLFLAG_RW, &auto_login, 0, --- 409 unchanged lines hidden (view full) --- 550 /* new or revived target */ 551 sbp_probe_lun(sdev); 552 if (auto_login) { 553 sdev->status = SBP_DEV_TOATTACH; 554 sbp_mgm_orb(sdev, ORB_FUN_LGI); 555 } 556 break; 557 } |
558SBP_DEBUG(0) |
559 sbp_show_sdev_info(sdev, 560 (sdev->status == SBP_DEV_TOATTACH)); |
561END_DEBUG |
562 } else { 563 switch (sdev->status) { 564 case SBP_DEV_ATTACHED: 565SBP_DEBUG(0) 566 /* the device has gone */ 567 sbp_show_sdev_info(sdev, 2); 568 printf("lost target\n"); 569END_DEBUG --- 490 unchanged lines hidden (view full) --- 1060 nid = sdev->target->sbp->fd.fc->nodeid | FWLOCALBUS; 1061 bzero((void *)(uintptr_t)(volatile void *)ocb->orb, sizeof(ocb->orb)); 1062 ocb->orb[6] = htonl((nid << 16) | SBP_BIND_HI); 1063 ocb->orb[7] = htonl(SBP_DEV2ADDR( 1064 device_get_unit(sdev->target->sbp->fd.dev), 1065 sdev->target->target_id, 1066 sdev->lun_id)); 1067 |
1068SBP_DEBUG(0) |
1069 sbp_show_sdev_info(sdev, 2); 1070 printf("%s\n", orb_fun_name[(func>>16)&0xf]); |
1071END_DEBUG |
1072 switch (func) { 1073 case ORB_FUN_LGI: 1074 ocb->orb[2] = htonl(nid << 16); 1075 ocb->orb[3] = htonl(vtophys(&sdev->login)); 1076 ocb->orb[4] = htonl(ORB_NOTIFY | ORB_EXV | sdev->lun_id); 1077 ocb->orb[5] = htonl(sizeof(struct sbp_login_res)); 1078 break; 1079 case ORB_FUN_RCN: --- 1138 unchanged lines hidden --- |