Jump to content
XPEnology Community

Recommended Posts

Posted

Hi all,

I know this is a well-worn topic, but I have not been able to find a specific answer on my situation.
I understand how and why the SataPortMap & DiskIdxMap fields are used, (well, I think I understand it enough...)
But my questions is:
How does one go about determining what these values should be?

I am currently running a:

·         TinyCore RedPill Loader with M-Shell (Latest as of 20240305)

·         Asus P11C-M4L with all SATA controllers turned off in the BIOS

·         ASUS PIKE II 3008 8-port SAS HBA card

·         12GB/s SGPIO Expander hot-swap backplane that the connects back to the PIKE II card via 2 MiniHD Cables

·         12 SAS disks attached to the this backplane

·         All 12 disks are being presented to Xpenology as individual disk.


With:
SataPortMap: 1
DiskIdxMap: 00

I end with DSM detecting all 12 disks, but the disk count starts at 02 and goes through to 13. Like other users I am trying to configure my system to use ports 01-12

 image.png.f42837daa4958cc9ce1734a9acd2e731.png

image.thumb.png.2c36753e7127b02738ff5da45e562a70.png

I have read some comments suggesting that SAS configurations do not utilise the SataPort Map setting, however I find if I manipulate these settings, does affect the disk layout in DSM.

As I have disabled my onboard SATA controllers I believe the PIKE Card is the first control which holds 8 ports, evern though via the SAS backplane it has 12 disks attached.
 

As SataPortMap only uses 1 digit to configure the ports, I assume I need to use:
SataPortMap: 8

 

SataPortMap: 1
DiskIdxMap: 00
Assigns my 12 disks from: sdb through to sdm

and

SataPortMap: 8
DiskIdxMap: 00
Assigns my 12 disks from: sdd through to sdo

 

So these values are affecting my DSM configuration, what I do not understand is how to calculate the HEX values for the DiskIdxMap.

I believe setting DiskIdxMap: 00 means that the first disk detected should be assigned to sda.

Ssh-ing into the DSM, there is no sda listed, so I don’t believe there are any other disk controllers at play here.
 

Have I misunderstood a concept here? Is there any glaringly obvious I have missed or misunderstood?
 

image.thumb.png.98d27215a9d4193a984d9549c2269725.png

Cheers,
Leon

Posted (edited)

So I rebuilt my TCRP bootloader.
I now have Bays 2-12 populated and one of my drives is now being detected as an external drive...

Edited by leonade
Posted

Flipped from Peter Suh's TCRP M-Shell
back to
pocopico's "tinycore-redpill-uefi.v0.10.0.0.img"

and this has corrected all my issues.

No idea what the difference is...

Even below on the working environment, I have 0 HBA's listed.

image.thumb.png.0cc5302244cefd3f7418e4f0fc818608.png

  • 9 months later...
Posted

Have you got the solution? I have the same issue...

With TCRP: SataPortMap: 14 and DiskIdxMap: 0400

>>> Boot go to disk 5, all another disks go to 1,2,3,4 (It is OK)

 

With M-Shell: Set SataPortMap and DiskIdxMap is not working...

sata_remap "0\\>4:4\\>0" still not change the disk order...

 

Posted

Flipped from Peter Suh's TCRP M-Shell
back to
pocopico's "tinycore-redpill-uefi.v0.10.0.0.img"

and this has corrected all my issues.

Since then with DSM 7.2.2 I have flipped to Arc Loader All is working fine for me at the moment

Posted
12 hours ago, SeCrEt BoY said:

Have you got the solution? I have the same issue...

With TCRP: SataPortMap: 14 and DiskIdxMap: 0400

>>> Boot go to disk 5, all another disks go to 1,2,3,4 (It is OK)

 

With M-Shell: Set SataPortMap and DiskIdxMap is not working...

sata_remap "0\\>4:4\\>0" still not change the disk order...

 

Hi !

 

You are wrong:

The sataportmap value seems good to me (without additional information or screenshots).

This variable indicates to DSM the number of sata ports available by BUS : 1 & 4

 

SataPortMap = 14

 

For DiskIdxMap part, it is wrong: this variable declares the order of available disks. The count starts at 0 and not 1 and is made up of 2 digits

We start with the first sata bus, we start at 0 => 00

Comes after the second sata bus => 01

Finally, we assemble in order to obtain the variable => 0001

 

DiskIdxMap = 0001

Posted
6 hours ago, renegadeBE said:

Hi !

 

You are wrong:

The sataportmap value seems good to me (without additional information or screenshots).

This variable indicates to DSM the number of sata ports available by BUS : 1 & 4

 

SataPortMap = 14

 

For DiskIdxMap part, it is wrong: this variable declares the order of available disks. The count starts at 0 and not 1 and is made up of 2 digits

We start with the first sata bus, we start at 0 => 00

Comes after the second sata bus => 01

Finally, we assemble in order to obtain the variable => 0001

 

DiskIdxMap = 0001

My system:

SATA Controller 1: have 1 port (mSATA at this port 00)

SATA Controller 2: have 4 ports(01-04

 

With TCRP I just set SataPortMap=14 (first controller have 1 port and second have 4 ports, is it right???)

And DiskIdxMap=0400 (First disk of controller 1 start with disk 5 and first disk of controller 2 start at disk 1, is it right?)

 

But the point I figured out yesterday is: 

SataPortMap=14, DiskIdxMap=0400 work OK with DS918+ loader. (mSATA is disk 5 and HDDs start at Disk 1 - Disk 4)

Others model, 2 params is useless... Whatever I set for them, the disk still: mSATA is Disk 1, HDD from Disk 2 - Disk 5)

Posted (edited)

@SeCrEt BoY

 

Some models use automatic device tree detection (DT). I'm not sure, but I think the settings are then ignored.

 

The 2 parameters are linked (sataportmap & diskidxmap): if the first sata bus (msata) is detected first it must be declared first in both variables. Then, the second sata bus (marvell) is declared in second position for both variables.

 

I remain convinced that the diskidxmap variable must be assigned as indicated in my previous post, the value in the first position of sataportmap is 1 (mSATA BUS) and we want the disk to be placed in the first position : 0001.

The disks managed by the second BUS (marvell) come after: 0001

 

=> DiskIdxMap = 0001

 

If the marvell BUS is detected first the variables are different:

 

-> SataPortMap = 41

-> DiskIdxMap = 0100

 

After modifying these variables, you must rebuild the loader for it to take effect.

 

You can try the following command in the terminal:

 

./rploader.sh satamap

 

It is a tool for automatic variable configuration. I don't know if it's still supported, let's try. As said previously, the charger must be rebuilt after modification.

Edited by renegadeBE

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...