IG-88 Posted August 9, 2020 Share #1 Posted August 9, 2020 (edited) there are config commands for sata and sas that can be used in grub.cfg (kernel boot parameter) most often "seen" might be "SataPortMap" but there are a lot more in the recent kernel source the "Kconfig.devices" does not contain any help or commentary as before there was a older version referenced in the forum from a git but that does not exists anymore to start and make a more lasting documentation i will at least bring it here to a point where we can see what synology hat to say about it the infos should be still in synologys older 6.0 kernel sources from 2016, in 6.1 they are already gone https://sourceforge.net/projects/dsgpl/files/Synology NAS GPL Source/7321branch/broadwell-source/linux-3.10.x.txz/download Spoiler config SYNO_FIXED_DISK_NAME bool "Use Fixed Disk Name" default y help <DSM> No Bug Entry Make internal SATA disk use fixed device name. For example, the first channel is sda, the second is sdb, etc. All USB disk would start from sdq. config SYNO_BADSECTOR_TEST bool "Interface to fake bad sectors for testing" default y help <DSM> #5791 Provide interface for userspace tool 'bsset' to fake bad sectors on disk for testing. config SYNO_MAX_INTERNAL_DISK int "Maximum Internal Disk Number" depends on SYNO_FIXED_DISK_NAME || SYNO_BADSECTOR_TEST default "19" if SYNO_BROMOLOW || SYNO_GRANTLEY default "15" if !SYNO_BROMOLOW && !SYNO_GRANTLEY help <DSM> No Bug Entry Maximum SCSI internal disk. We will reserve device name for internal disks. Notice - User mode "cardreaderd" would poll on external disk only. config SYNO_SATA_PORT_MAP bool "Modify SATA Hosts Port Number" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #18789 Reads Sata-Port-Mapping information and forces the sata hosts to initialize specified number of ports. This makes the disk name not skip some characters. Notice - Do NOT set the port number out of the range that [0-9]. It supports as most 9 ports now. For example, SataPortMap=4233 means the 1st host use 4 ports, the 2nd host use 2 ports, the 3rd and 4th host use 3 ports. config SYNO_DISK_INDEX_MAP bool "Modify Disk Name Sequence" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #19604 Add boot argument DiskIdxMap to modify disk name sequence. Each two characters define the start disk index of the sata host. This argument is a hex string and is related with SataPortMap. For example, DiskIdxMap=030600 means the disk name of the first host start from sdd, the second host start from sdq, and the third host start sda. config SYNO_SATA_REMAP bool "Re-map Disk Name Sequence" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #47418 Add boot argument sata_remap to remap data port sequence. For example, sata_remap=0>4:4>0 means swap the first disk name and the 5th. The following is the remap result. ata1 - sde ata2 - sdb ata3 - sdc ata4 - sdd ata5 - sda config SYNO_SATA_DISK_SEQ_REVERSE bool "Reverse Disk Port Sequence" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #23278 Add boot argument DiskSeqReverse to reverse the ports of each SATA chip. For example, for a 4 SATA chips model, 4 ports of each SATA chip. We want to reverse all 4 ports of 1st chip, no modification of 2nd chip, reverse 2 former ports of 3rd chip, and reverse 3 former ports of 4th chip. The boot argument should be DiskSeqReverse=4023. And the sequence of disk is: 1st chip - [sdd, sdc, sdb, sda] 2nd chip - [sde, sdf, sdg, sdh] 3rd chip - [sdj, sdi, sdk, sdl] 4th chip - [sdo, sdn, sdm, sdp] config SYNO_SCSI_GET_ATA_IDENTITY bool "Get ata identity via ATA PASS THRU command in scsi layer" default y help <DSM> #46274, #49046 This define issues a ata identity command via ata pass thru, because sometimes we need the information of ata identity in scsi layer. We extract this function into a new define in Linux-3.10.x, because there are two different fixes need this function. config SYNO_SATA_PM_DEVICE_GPIO bool "Synology Specific PM Device Support" depends on SATA_PMP default y help <DSM> #6820, #7197 Provide specific functions of Synology eunit. Provide eunit gpio functions in Sysfs. Provide functions to power off scsi port. Driver should implement their own power off method. Merged definitions: SYNO_SATA_PM_SEAGATE_PROBE_TIME_FIX config SYNO_SATA_MV_GPIO_RW bool "Marvell SATA Controller GPIO Operation Interfaces" default y help <DSM> #18827, #19394 Exporting the interfaces for controlling the GPIO pins on Marvell SATA controllers. config SYNO_INQUIRY_STANDARD bool "Correct the disk vendor and model information in kernel" default y help <DSM> #10476 If vendor name is "ATA ", try to get disk vendor from model name. config SYNO_ATA_AHCI_LED_SGPIO bool "Control Disk LEDs via SGPIO with AHCI" depends on X86_64 default y help <DSM> No Bug Entry The interfaces for AHCI driver to operate with SGPIO and control the LEDs. config SYNO_ATA_AHCI_LED_SWITCH bool "Main Switch Of Disk LEDs with AHCI" depends on SYNO_ATA_AHCI_LED_SGPIO default y help <DSM> #27837, #27954 Added the main switch to shutdown disk LEDs that are controlled via SGPIO with AHCI. config SYNO_ATA_PWR_CTRL bool "Disk Power Control" depends on SYNO_INTERNAL_HD_NUM && SYNO_ICH_GPIO_CTRL && SYNO_HW_VERSION default y help <DSM> No Bug Entry Used to control the power of HDDs in some model which are low power supply. config SYNO_INCREASE_DISK_MODEL_NAME_LENGTH bool "Increase disk model name size up to 24 characters" depends on SYNO_SCSI_GET_ATA_IDENTITY && SYNO_INQUIRY_STANDARD default y help <DSM> #39582 & #43388 The original disk model name is only 16 characters. But there is several disk model name over 16 characters. In this fix, we use ATA command "IDENTIFT DEVICE" to get whole model name and increase disk model name size up to 24 characters. If you want to scale the model length, you have to modify the definition of SYNO_DISK_MODEL_LEN and SYNO_DISK_MODEL_NUM in the following files. config SYNO_DISK_MODEL_NUM int "Length of disk model name in integer" depends on SYNO_INCREASE_DISK_MODEL_NAME_LENGTH default 24 help The string length of disk model name. config SYNO_DISK_MODEL_LEN string "Length of disk model name in string" depends on SYNO_INCREASE_DISK_MODEL_NAME_LENGTH default "24" help The string length of disk model name. config SYNO_SATA_DISK_LED_CONTROL bool "Interface To Control SATA Disk LEDs" depends on SYNO_SATA_PM_DEVICE_GPIO default y help <DSM> No Bug Entry The sysfs interface for related modules to control the disk LEDs. Implemntation should be done in the customized modules, means, synobios. config SYNO_SPINUP_DELAY bool "Separate Disk Spin Up Timing" depends on SYNO_INTERNAL_HD_NUM && SYNO_HW_VERSION default y help <DSM> #14299, #14524 Prevent harddisks spin-up currently from standby mode. Add small amount of delay between each two disks so they do not consume too much power. It is recommanded to turn on SYNO_SOFTLOCKUP_THRESH_EXTENSION if LOCKUP_DETECTOR is enabled to prevent false alarm call trace. config SYNO_MV_9235_GPIO_CTRL bool "Interfaces For Marvell 9235 GPIO Control" default y help <DSM> #46891 Provides the infterfaces to operate the GPIO pins on Marvell 9235. config SYNO_SCSI_DEVICE_INDEX bool "Get device index from scsi layer" default y help <DSM> #6006 Get device index from scsi layer [IN] Pointer of the target block device [OUT] Disk index of the target block device config SYNO_PM_DISABLE_LINK_LIMIT bool "Clear the link speed limit when pmp attach" default y help <DSM> #58739 The sata link speed of EUnit port 1 might be limited to 1.5Gbps All EUnits which use port multiplier 3726/3826 have this issue. SControl of port 1 will always be 0x10 after poweron if there are no devices connected to port 1. Clearing the link speed limit when pmp attach can solve this problem config SYNO_SATA_EBOX_REFRESH bool "Send ebox refresh event to userspace" depends on SYNO_SATA_PM_DEVICE_GPIO default y help <DSM> DSM #7761 Send ebox refresh event throught synobios to scemd for the ebox hotplug event. config SYNO_SATA_88SX7042_MSI bool "Enable MSI on Marvell 88SX7042" depends on PCI default y help <DSM> #35279, #21899 Using MSI (Message-signaled Interrupt) can potentially increase performance by using faster interrupt mechanism and avoid sharing IRQ. It can also avoid performance degradation caused by bogus interrupts and disabled irqs config SYNO_OSS_SATA_LED bool "Control Marvell 88SX7042 LED" default y help <DSM> No Bug Entry <LKP2.6.32> #218 In order to make LED static when disk present and blinking when disk active, we have to set the offset 0x104F0 bit 0-1 to 0x00 and bit 2-3 to 1. See data sheet page 282 (Table 232: GPIO port control register), this is for open source mv driver config SYNO_DISK_HIBERNATION bool "Disk hibernation" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #2165, #5608, #5786 We using ata command 0xe0 for implement hibernation. This may need a idel timer for others query. config SYNO_HDD_HOTPLUG bool "Internal HDD hotplug" default y help <DSM> #27450 Add boot argument "HddHotplug" to support internal HDD hotplug. config SYNO_INCREASE_SIL3132_OUT_SWING bool "SATA Sil3132 OUT SWING to prevent DRDY" depends on SYNO_CEDARVIEW || SYNO_AVOTON default y help Increase SATA Sil3132 OUT SWING to prevent DRDY config SYNO_SATA_SIL3132_HD_DETECT bool "Fix 'SRST command error' on SiI3132" default y help <DSM> #6890 Some disk could not probe with sata_sil24.c . The reason is they always encounter "SRST command error". So we retry SRST and insert a sata_std_hardrest before retry it. Disks: 9611-HD-005(WD10EACS-00ZJB0), 9704-HD-019(WD7500AACS) We have many disks which have the same models as above, but they would not have the same problem. Note. When you port this to newer kernel, please try to reproduce firstly. If it still that, and i suggest port this define. Otherwise, please don't port this. config SYNO_SIL3132_PM_WORKAROUND bool "SIL3132 PM workaround" default y help <DSM> #39234 PM of SIL3132 can't reconfigue speed correctly. When reconfiguing speed, PM of SIL3132 doesn't have PHY-off(DET=4h) mode. So we use RESET(DET=1h) mode. After reconfiguing speed, need to write again after a 1ms delay. Otherwise the speed won't configue correctly. config SYNO_SATA_88SX7042_PHY_PWR_CTRL bool "Control Marvell 88SX7042 PHY power by sysfs interface" depends on SYNO_SATA_PM_DEVICE_GPIO default y help <DSM> #15519 Add an interface in sysfs to control Marvell 88SX7042 SATA PHY power. usage: echo off > /sys/class/scsi_host/host*/syno_phy_ctl to turn off echo on > /sys/class/scsi_host/host*/syno_phy_ctl to turn on config SYNO_MV_9235_PORTING bool "Marvell 88SE9235 workarounds" default y help <DSM> #39839 Add new SATA 6G chip (mv9235) and its workaround given by Marvell. The workaround is to solve hang problem when issuing SMART command. config SYNO_MV_9235_6G_WORKAROUND bool "Marvell 88SE9235 workaround for WD Red 6Gbps link problem" depends on SYNO_MV_9235_PORTING default y help <DSM> #47008 WD Red will link up 3.0 Gbps after hotplugging. The only thing we can do to fix it is to enforce it tries to link up with 6.0 Gbps config SYNO_MV_9235_SRST_FIX bool "Marvell 88SE9235 SRST fix" depends on SYNO_MV_9235_PORTING default y help <DSM> #43060 mv9235 may fail when issue 2nd D2H in SRST, so we must check it at 2nd D2H config SYNO_TRANS_HOST_TO_DISK bool "Transfer scsi host number to disk name and export to sysfs" default y help <DSM> #35892 Add an interface in sysfs to show disk name transfered from scsi host. usage: cat /sys/class/scsi_host/host*/syno_diskname_trans config SYNO_SATA_FORCE_1_5GBPS bool "Force SATA 1.5Gbps speed for selected disks" default y help <DSM> #21684 Force set some disk to 1.5Gbps in driver mode to enhance compatibility. Disks:Hitachi HDS723020BLA642 config SYNO_ENLARGE_RX_NOISE_TRRESHOLD bool "Enlarge noise threshold of mvsata" default y if SYNO_X64 help <DSM> #19706 Enlarge noise threshold to prevent recieve too many noise while normal stress. config SYNO_SATA_SIL3132_ABRT_WORKAROUND bool "SiI3132 boot-time ICRT ABRT workaround" default y help <DSM> #49102, #49180 Silicon Image 3132 may have ICRT ABRT errors while boot-up This is a workaround that decreases the frequency of such a issue's appearance. config SYNO_SATA_PM_SAMSUNG_PROBE_TIME_FIX bool "Samsung HDD/PMP probing workaround" default y help <DSM> #7872 Hotplug in Samsung disk in fan out port is not easy to probe. The only way is to force hardreset pmp link in hotplug disk, no matter what kind of disk hotplug in. Because we cannot recocnize what kind of disk be plugged in. So we force hard reset pmp link while any disk is plug in. Disks: SAMSUNG HD103UJ. Note. This problem only happen in hotplug in SAMSUNG HD103UJ This situation still found in kernel 2.6.32. We can solve this problem by increase retry time which has done in porting #47 SYNO_SATA_SIL3132_HD_DETECT. We still port this define for compatibility. config SYNO_UNC_LBA_RESTORE bool "ATA UNC LBA return error workaround" default y help <DSM> #72618 #73898 Some of the sata controllers return LBA registers even if the NCQ READ command failed. These register values are not defined in ATA standard and cannot be trusted. Passing these untrusted values to SCSI layer might cause in data lost due to incorrect BIO completed-byte calculation. This fix only target on UNC error and will restore the result LBA with the preceded setup right before these information are formed into sense data and returned to SCSI layer. config SYNO_SATA_WCACHE_DISABLE bool "Disk write cache blacklist" default y help <DSM> #19052 Let disk in blacklist cannot enable disk write cache and apply it during device starting config SYNO_ATA_FAST_PROBE bool "EUnit fast probe mechanism" default y help <DSM> #22029, #22030, #22031 Let eunit disk can spinup simultaneity to speedup boot time. config SYNO_SATA_INFO bool "Show SATA information" default y help <DSM> No Bug entry Show SATA phy ready/change messages config SYNO_SATA_SIL3132_HITACHI_WORKAROUND bool "Fix communication problem of Hitachi HTS541040G9SA00 with SIL3132 SATA chip" default y help <DSM> #8311 SIL3132 cannot well communicate with a Hitachi hard disk: Model Family: Hitachi Travelstar 5K100 series Device Model: HTS541040G9SA00 Serial Number: MPBB20X2GTZRKM Firmware Version: MB2OC40J User Capacity: 40,007,761,920 bytes ATA Version is: 6 ATA Standard is: ATA/ATAPI-6 T13 1410D revision 3a This disk is taken from robenh. We force the IPM and communication speed on this kind of disk. Let SIL3132 can play nicely with this disk. config SYNO_SATA_DISK_SERIAL bool "Let sata disk export its serial number" default y help <DSM> #16579, #18136 Let sata disk export its serial number to sysfs. config SYNO_SIL3132_INTEL_SSD_WORKAROUND bool "Fix speed drop problem of Intel 6G SSD (330,520) on SIL3132 SATA chip" default y help <DSM> #39849, #41692 Intel 6G SSD (330,520) drop speed after hotplug on ahci and silicon image drivers. We slove the problem by clear speed limit after EH. It works on silicon image drivers only. But it will cause recognition problem of HITACHI disks on sata_mv dirvers. Therefore, we only clear speed limit on silicon image drivers. config SYNO_CHECK_DISK_SLEEP bool "Disk sleep status ioctl() interface" default y help Allow user space to use ioctl() to get SATA hibernation status. config SYNO_IOCTL_HDIO_GET_DMA bool "HDIO_GET_DMA ioctl for libata" default y help <DSM> #2345 Add HDIO_GET_DMA for SCSI SATA. config SYNO_AHCI_PM_DEADLOCK_FIX bool "AHCI/PMP deadlock fix" default y help DSM #44992 Fix port-multiplier-related deadlock in ahci driver. The problem happens when an UNC-error disk is plugged in mv9705 connected to mv9235, using ahci driver. Reading UNC sector on the disk will trigger deadlock as following path: ahci_interrupt -> ahci_port_intr -> ahci_error_intr -> ata_link_online -> ... -> ata_exec_internal_sg config SYNO_HANDLE_EIO_DISKS bool "Kickoff EIO disks" default y help <DSM> #14275, LKP2.6.32 #233 When disks device revalidate fail, handle dev fail function didn't kick this dev off. This may cause raid in error state. (ex. Seems these disks are ok, and keep resync) So we add condition to kick these disks off. When handle device fail is because -EIO, we kick this device off config SYNO_FIX_LIBATA_NOT_REFLUSH bool "Flush revalidated disks after error" default y help fix if revalidate success, libata-eh still not retry flush config SYNO_SATA_SSD_DETECT bool "SSD detection" default y help <DSM> #4931, #8509 Deny some command in SSD disks. Because the biggest problem is in our spinup delay code. Sometimes those ssd just cannot wake up normally. So you would see lots of wake up from hibernate in the syslog. config SYNO_PMP_HOTPLUG_TASK bool "PMP hotplug event" default y help <DSM> #10983, #26139 Send port multiplier hotplug event to userspace. Merged definitions: SYNO_LIBATA_PMP_UEVENT config SYNO_SATA_REDUCE_RETRY_TIMER bool "Reduce SATA retry timer" default y help <DSM> #5857 limit libata error retry time interval from 5 to 2 second. config SYNO_SATA_PM_CLEANUP_CLASS bool "Cleanup port multiplier class" default y help <DSM> #50166 The class register wouldn't be cleaned after detach PM. In some situation, the port would be set ATA_DEV_NONE, and this port would skip reset and lost connect. We should cleanup the class register to ATA_DEV_UNKNOWN config SYNO_AHCI_SOFTWARE_ACITIVITY bool "AHCI software acitivty led" depends on SYNO_LEDS_TRIGGER default n help <DSM> #52057 For the model which control AHCI activity led by software config SYNO_SIL3132_ACTIVITY bool "SiI3132 software acitivty led" depends on SYNO_LEDS_TRIGGER default n help <DSM> #60268 For the model which control SiI3132 led by software config SYNO_SATA_CHIP_REORDER bool "Adjust the order of sata chip drivers" default y help <Linux Kernel Porting - linux-3.10.x> #417 For disk ordering. sata_sil24.o sould be after sata_mv.o config SYNO_FORCE_EH_FULL_RECOVER_RETRY bool "Force to reset all links of a PMP while retrying EH recover" default y help <DSM> #66191 The EH recover will not clean the flags of the rested link if an error occurred on an frozen port. This could leads to port dysfunction, so we add this fix to prevent the PMP SATA ports from improper initializing. Set to Y if you want to enable it. config SYNO_SATA_AHCI_FBS_NONCQ bool "Disable NCQ of some SATA AHCI controllers" default y help <DSM> #65977 To fix the handshake issue between SATA controllers and port multiplier 3726/3826, we disable NCQ of some SATA AHCI controllers. config SYNO_MV_9170_PORTING bool "Marvell 88SE9170 specific initialize steps" default y help <DSM> #66201 Marvell provide PCI programming steps for 88SE9170 without SPI flash hardware design to slove some compatibility issue. config SYNO_SATA_PM_LINK_RETRY bool "Reset port multiplier if the link speed drop to 1.5Gbps" default y help <DSM> #62909 Avoton models have chance to get 1.5Gbps with PM3826, so we add workaround and try to linkup to 3.0Gbps config SYNO_SATA_PM_FIRST_PORT_DELAY bool "Delay 2 secs for port multiplier first port reset" default n help <DSM> #63772 Avoton models wait 2 sec for first pm port reset config SYNO_EUNIT_DEADLOCK_FIX bool "Prevent eunit find master deadlock" default y depends on SYNO_SATA_PM_DEVICE_GPIO help <DSM> #72119 Eunit with multiple PM would call SynoEunitFindMaster() to find the master PM SynoEunitFindMaster() would call class_find_device() and making deadlock We disable irq when SynoEunitFindMaster is running config SYNO_CUSTOM_SCMD_TIMEOUT bool "Customize SCSI commands timeout value per disk" default y help <DSM> #70413 The "spin up to ready time" of some disks is too long, and it may lead to the warning message "DRDY (timeout)" occurred. For example, the original SCSI command timeout of disk iotcl is 10s, but the spin up time of ST6000VN0001 is 23s. Then "DRDY (timeout)" occurs when the disk wakes up from stanby everytime. To avoid this issue, we provide an interface to change the timeout value of each disk. config SYNO_SII3132_MEDIA_ERROR_RETRY bool "Enable SATA SiI3132 media error retry" depends on SYNO_AVOTON default n help SiI3132 may get media error in some models, we could add retry for them endmenu #SATA menu "SAS" config SYNO_SAS_DISK_NAME bool "Refactor SAS Disk Name" default y depends on SYNO_FIXED_DISK_NAME help <DSM> #33176 Break SYNO FIXED DISK NAME rule in SAS model. The SAS model will not be named as fixed position as the fixed disk naming rule, e.g. sda -> disk1, sdb -> disk2. SAS disk name will be named as sas1, sas2, sas3, ..., but the disk name is no longer mapping to any disk position config SYNO_SAS_DEVICE_PREFIX string "SAS Disk Name Prefix" default "sas" depends on SYNO_SAS_DISK_NAME help <DSM> #33176 See SYNO_SAS_DISK_NAME help config SYNO_SAS_USB_DEVICE_PREFIX string "SAS USB Name Prefix" default "usb" depends on SYNO_SAS_DISK_NAME help <DSM> #33176 See SYNO_SAS_DISK_NAME help config SYNO_SAS_ISCSI_DEVICE_PREFIX string "SAS Iscsi Name Prefix" default "iscsi" depends on SYNO_SAS_DISK_NAME && SYNO_ISCSI_DEVICE help <DSM> #33176 See SYNO_SAS_DISK_NAME help config SYNO_SAS_FIX_TRIM_GRANULARITY bool "Correct TRIM granularity in SAS model" default y depends on SYNO_SAS_DISK_NAME && SYNO_SCSI_GET_ATA_IDENTITY help <DSM> #46274 This fix corrects the value of TRIM granularity in SAS model. Because the granularity value returned by SAS controller is wrong and make TRIM command failed to execute in RAID0 / RAID10 in SAS model. Previous Naming: SYNO_TRIM_SUPPORT config SYNO_SAS_FIX_ENCLOSURE_POWEROFF_WARNON bool "Avoid WARN ON message when plug off enclosure" default y help <DSM> #40515 Remove symbolic link on enclosure component before unregister it. If we remove these symbolic links when component release, we will trigger the warn on message because these sysfs structure has been removed in unregister stage Previous Naming: SYNO_SAS_ENCLOSURE_POWEROFF_WARNON config SYNO_SAS_DISK_LED_CONTROL bool "Light on/off disk present LED when a sas/sata disk is plugged in or pulled out" default y help <DSM> #34892,#41508 On SAS model, the way to control disk LED is through SES protocol to set up expander phy status. Then expander will output signal to CPLD to light on present/faulty LED. Everytime a disk plugged in/pulled out, it will be attached to its parent enclosure and a link will be created. So we light on/off the disk present LED at this moment. This define works in drivers/misc/enclosure.c config SYNO_SAS_SYSFS_BLOCK_DEV_LINK bool "Add block device symbolic link under sysfs" default y depends on SYNO_SAS_DISK_NAME help <DSM> #35518, #37740 The driver/base/core.c had been refactored. This causes that in sysfs, the symbolic link to block device dissappears. For example: in /sys/class/scsi_disk/1:0:0:0/device/, there should be a symbolic link named as block:sas1. However, this symbolic link dissappears in linux-3.x, and in linux-2.6.32, it preserves. Because in SAS model, we relay on this structure to parse our disk topology, we need it back. After checking the kernel git log & linux-2.6.32 related codes, this symbolic link could preserve here without affecting other functions. Previous Naming: SYNO_SYSFS_BLOCK_DEV_LINK config SYNO_SAS_SHOW_DISK_PHY_INFO bool "Show phy info in kernel log when disk hotplug in" default y depends on SYNO_FIXED_DISK_NAME help <DSM> #34868 Show phy info in kernel log when disk hotplug in. What we do is exactly the same as LSI kernel driver Phase11 config SYNO_SAS_RECOVER_REMOVED_ENCS bool "An workaround to bring back removed enclosures when we replug upper link" default y depends on SCSI_MPT2SAS help <DSM> #34203 When we unplug enclosures from the middle of the linking chain, all the following enclosures will be removed. Then we replug the removed link, the host can only recover the first attached enclosure, and the others are still lost. This is because that the host firmware still keep them but the driver already remove these enclosures. The bug is caused by driver at function _scsih_expander_node_remove. When we unplug the upper link, this function will remove all devices/enclosures behind this link. Meanwhile, the driver is going to notify firmware to update its status. But those enclosures have been removed in driver, and the firmware will not be notified. So firmware keep those enclosures as well and send wrong message to driver when we replug this link. The only thing we need to do is to buy enough time for firmware to update its status before removed. config SYNO_SAS_MPT2_HOTPLUG_PHY bool "Remove hotplug phy in a wide port when pulled out" default y depends on SCSI_MPT2SAS help The driver need to add phys to relative port or remove phys from it when hotplug phys. For example, when a SAS port with 8 phys, one cable with 4 phys are removed, we need to know that in kernel. But in original driver, we won't unless the wide port are removed. config SYNO_SAS_SPINUP_DELAY bool "Support SAS disk spinup queue" default y depends on SCSI_MPT2SAS help <DSM> #35222 Implement spinup delay queue in SCSI layer to limit numbers of disks spun up concurrently. Which is used to handle un-sufficient power supply to bare total power consumption when all disks spin up concurrently. config SYNO_SAS_SPINUP_DELAY_DEBUG bool "Print out debug message for SAS disk spinup queue" default n depends on SYNO_SAS_SPINUP_DELAY help Print out debug message for SYNO_SAS_SPINUP_DELAY config SYNO_SAS_ENCOLURE_PWR_CTL bool "Encolure power control" default n help <DSM> #62317 Export interface to control PCH GPIO for Banana Split power control. config SYNO_SCSI_MAX_QUEUE_DEPTH_LOCK bool "Enable SCSI queue depth lock" default n help <Linux Kernel Porting - linux-3.10.x> #437 Enable irq_lock to prevent interrupt reentrants when SAS is changing queue_depth. config SYNO_EUNIT_LIMITATION bool "Limit Eunit Speed To 1.5Gbps" default n help <Linux Kernel Porting - linux-3.10.x> #428 Limit eunit to 1.5Gbps to avoid eunit drop. Cedarview and Pinview have to open this option endmenu #SAS i also found a blog post about that but as it is with links it might not be there forever https://gugucomputing.wordpress.com/2018/11/11/experiment-on-sata_args-in-grub-cfg/ the old link mentioned above that is not availible anymore (but might be in some internet archives?) https://github.com/evolver56k/xpenology/blob/master/synoconfigs/Kconfig.devices edit: to shorten the way for poeple trying to understand whats going on with redill loader and SataPortMap/DiskIdxMap thats the extract from above for these two config SYNO_SATA_PORT_MAP bool "Modify SATA Hosts Port Number" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #18789 Reads Sata-Port-Mapping information and forces the sata hosts to initialize specified number of ports. This makes the disk name not skip some characters. Notice - Do NOT set the port number out of the range that [0-9]. It supports as most 9 ports now. For example, SataPortMap=4233 means the 1st host use 4 ports, the 2nd host use 2 ports, the 3rd and 4th host use 3 ports. config SYNO_DISK_INDEX_MAP bool "Modify Disk Name Sequence" depends on SYNO_FIXED_DISK_NAME default y help <DSM> #19604 Add boot argument DiskIdxMap to modify disk name sequence. Each two characters define the start disk index of the sata host. This argument is a hex string and is related with SataPortMap. For example, DiskIdxMap=030600 means the disk name of the first host start from sdd, the second host start from sdq, and the third host start sda. Edited March 20, 2022 by IG-88 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.