freebsd-dev/sys/dev/mps
Alexander Motin b99419aee4 mpr/mps(4): Make device mapping some more robust.
Allow new enclosure to replace previously existing one if there is
no completely unused table entry, same as it is done for devices.

If we can not process DPM due to corruption -- wipe it and restart
from scratch.  Otherwise I don't see a way to recover persistence if
something go wrong and there is no BIOS to recover it for us.

Together this solves a problem that appeared when 9300-8i firmware
update to 16.00.10.00 somehow switched its mapping mode from Device
Persistence to Enclosure/Slot without wiping the DPM table.  It made
HBA completely unusable, since overflowed and conflicting mapping
table was unable to map any of enclosures and so devices.

Also while there make some enclosure mapping errors more informative.

MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2021-04-23 23:36:51 -04:00
..
mpi mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_config.c mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_ioctl.h mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_mapping.c mpr/mps(4): Make device mapping some more robust. 2021-04-23 23:36:51 -04:00
mps_mapping.h mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_pci.c Refine the busdma template interface. Provide tools for filling in fields 2020-09-14 05:58:12 +00:00
mps_sas_lsi.c mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_sas.c Introduce support of SCSI Command Priority. 2020-10-25 19:34:02 +00:00
mps_sas.h Before issing the REMOVE_DEVICE command to the firmware, make sure that all 2020-02-25 04:27:23 +00:00
mps_table.c mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
mps_table.h
mps_user.c mpr, mps: Fix an off-by-one bug in the BTDH_MAPPING ioctl 2021-01-08 13:32:05 -05:00
mps.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
mpsvar.h Remove unused wrappers around kproc_create() and kproc_exit(). 2021-03-12 09:47:58 -08:00