aacraid: housekeeping for hints, expecially flag 0x08 - Added meaningful names for hint flags. - Added hint flag description to the manual page. - Armed default hint files with flags set to 0x08 for first 8 controllers to be consistent with default 10.x behaviour. - Explained changes in UPDATING Index: UPDATING =================================================================== --- UPDATING (revision 275208) +++ UPDATING (working copy) @@ -31,6 +31,13 @@ disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20141128: + aacraid(4) now has flag 0x80 for device.hints(5) that enables + raw da(4) devices to be present for physical disks in addition + to passthrough devices. Default hint files enable this mode + for first 8 controllers to be consistent with the historical + behaviour. Edit/check your /boot/device.hints before upgrading. + 20141109: faith(4) and faithd(8) has been removed from base system. It has been obsolete for a very long time. Index: share/man/man4/aacraid.4 =================================================================== --- share/man/man4/aacraid.4 (revision 275208) +++ share/man/man4/aacraid.4 (working copy) @@ -112,6 +112,24 @@ .It Pa /dev/aacraid? aacraid management interface .El +.Sh DEVICE HINTS +.Nm +supports the following flags passed via +.Xr device.hints 5 +mechanism: +.Pp +.Bl -tag -compact +.It 0x01 +enable 64-bit addressing for scatter-gather lists; +.It 0x02 +enable synchronous mode (beware, slows down all operations); +.It 0x04 +disable 2nd generation raw I/O; +.It 0x08 +expose physical disks as +.Xr da 4 +in addition to passthrough devices. +.El .Sh DIAGNOSTICS Compiling with .Dv AACRAID_DEBUG @@ -126,6 +144,7 @@ .Xr kld 4 , .Xr linux 4 , .Xr scsi 4 , +.Xr device_hints 5 , .Xr kldload 8 .Sh AUTHORS .An Achim Leubner Aq Mt achim@FreeBSD.org Index: sys/amd64/conf/GENERIC.hints =================================================================== --- sys/amd64/conf/GENERIC.hints (revision 275208) +++ sys/amd64/conf/GENERIC.hints (working copy) @@ -33,3 +33,11 @@ hint.wbwd.0.at="isa" hint.acpi_throttle.0.disabled="1" hint.p4tcc.0.disabled="1" +hint.aacraid.0.flags="0x08" +hint.aacraid.1.flags="0x08" +hint.aacraid.2.flags="0x08" +hint.aacraid.3.flags="0x08" +hint.aacraid.4.flags="0x08" +hint.aacraid.5.flags="0x08" +hint.aacraid.6.flags="0x08" +hint.aacraid.7.flags="0x08" Index: sys/i386/conf/GENERIC.hints =================================================================== --- sys/i386/conf/GENERIC.hints (revision 275208) +++ sys/i386/conf/GENERIC.hints (working copy) @@ -41,3 +41,11 @@ hint.wbwd.0.at="isa" hint.acpi_throttle.0.disabled="1" hint.p4tcc.0.disabled="1" +hint.aacraid.0.flags="0x08" +hint.aacraid.1.flags="0x08" +hint.aacraid.2.flags="0x08" +hint.aacraid.3.flags="0x08" +hint.aacraid.4.flags="0x08" +hint.aacraid.5.flags="0x08" +hint.aacraid.6.flags="0x08" +hint.aacraid.7.flags="0x08" Index: sys/powerpc/conf/GENERIC.hints =================================================================== --- sys/powerpc/conf/GENERIC.hints (revision 275208) +++ sys/powerpc/conf/GENERIC.hints (working copy) @@ -1 +1,9 @@ # $FreeBSD$ +hint.aacraid.0.flags="0x08" +hint.aacraid.1.flags="0x08" +hint.aacraid.2.flags="0x08" +hint.aacraid.3.flags="0x08" +hint.aacraid.4.flags="0x08" +hint.aacraid.5.flags="0x08" +hint.aacraid.6.flags="0x08" +hint.aacraid.7.flags="0x08" Index: sys/sparc64/conf/GENERIC.hints =================================================================== --- sys/sparc64/conf/GENERIC.hints (revision 275208) +++ sys/sparc64/conf/GENERIC.hints (working copy) @@ -1 +1,9 @@ # $FreeBSD$ +hint.aacraid.0.flags="0x08" +hint.aacraid.1.flags="0x08" +hint.aacraid.2.flags="0x08" +hint.aacraid.3.flags="0x08" +hint.aacraid.4.flags="0x08" +hint.aacraid.5.flags="0x08" +hint.aacraid.6.flags="0x08" +hint.aacraid.7.flags="0x08" Index: sys/dev/aacraid/aacraid.c =================================================================== --- sys/dev/aacraid/aacraid.c (revision 275208) +++ sys/dev/aacraid/aacraid.c (working copy) @@ -1361,7 +1361,7 @@ break; } if (i>0 && nseg_new<=sc->aac_sg_tablesize && - !(sc->hint_flags & 4)) + !(sc->hint_flags & AAC_HINT_RIO2_NOCONVERT)) nseg = aac_convert_sgraw2(sc, raw, i, nseg, nseg_new); } else { @@ -1622,7 +1622,7 @@ sc->flags |= AAC_FLAGS_ENABLE_CAM; if ((options & AAC_SUPPORTED_SGMAP_HOST64) != 0 && (sizeof(bus_addr_t) > 4) - && (sc->hint_flags & 0x1)) { + && (sc->hint_flags & AAC_HINT_SG_64BIT)) { device_printf(sc->aac_dev, "Enabling 64-bit address support\n"); sc->flags |= AAC_FLAGS_SG_64BIT; @@ -1645,7 +1645,7 @@ return (ENXIO); } - if (sc->hint_flags & 2) { + if (sc->hint_flags & AAC_HINT_SYNC_MODE) { device_printf(sc->aac_dev, "Sync. mode enforced by driver parameter. This will cause a significant performance decrease!\n"); sc->flags |= AAC_FLAGS_SYNC_MODE; Index: sys/dev/aacraid/aacraid_cam.c =================================================================== --- sys/dev/aacraid/aacraid_cam.c (revision 275208) +++ sys/dev/aacraid/aacraid_cam.c (working copy) @@ -1226,7 +1226,7 @@ /* handle phys. components of a log. drive */ if (ccb->csio.data_ptr[0] & 0x20) { - if (sc->hint_flags & 8) { + if (sc->hint_flags & AAC_HINT_PHYSDEVS) { /* expose phys. device (daXX) */ ccb->csio.data_ptr[0] &= 0xdf; } else { Index: sys/dev/aacraid/aacraid_var.h =================================================================== --- sys/dev/aacraid/aacraid_var.h (revision 275208) +++ sys/dev/aacraid/aacraid_var.h (working copy) @@ -466,6 +466,10 @@ #define AAC_FLAGS_NEW_COMM_TYPE34 (1 << 18) /* New comm. type3/4 */ #define AAC_FLAGS_SYNC_MODE (1 << 18) /* Sync. transfer mode */ u_int32_t hint_flags; /* driver parameters */ +#define AAC_HINT_SG_64BIT (1 << 0) /* Enable 64-bit addressing */ +#define AAC_HINT_SYNC_MODE (1 << 1) /* Enable synchronous mode */ +#define AAC_HINT_RIO2_NOCONVERT (1 << 2) /* Don't use 2nd-gen raw I/O */ +#define AAC_HINT_PHYSDEVS (1 << 3) /* Expose physical devices (daX) */ int sim_freezed; /* flag for sim_freeze/release */ u_int32_t supported_options; u_int32_t scsi_method_id;