Robert,
I now have two of these Broadwell NUCs, NUC5i3RYH to be specific.
SmartOS boots and runs on the NUC, and even recognizes the M.2
PCIe SSD. You were right - many PCIe SSD identify themselves
as AHCI. I have the Samsung XP941 and it does show up as an
AHCI controller and works just fine. I only have the 128GB version,
therefore the write speed is only about 440MB/s, but the read speed
is about 1.4GB/s.
The big problem I am facing now is the Ethernet NIC: It is a very recent
part, Intel I218-V rev. 3, PCI id 8086:15a3. It does not work with
the most recent SmartOS. I found a post from you from 2013 about
adding support for Intel I210 and I217 to SmartOS, so I hope the
I218 is not far off. Anyway, I tried the simple fix:
update_drv -a -i 'pci8086,15a3' e1000g
but sadly, I got: „pci8086,15a3 - e1000g[0] : Identify hardware failed“
and „Driver (e1000g) successfully added to system but failed to attach“.
Is there anything I can do to make this NIC work with SmartOS?
Using another NIC is no option for a NUC, and I got these NUC specifically
to run SDC. It would be very sad if they could not be made to work with
SmartOS, as I think these NUC are ideal for setting up a lab
for SDC. They are small, power efficient, and not too expensive.
Anyway, I may try drivers from Illumos/OmniOS, or even compile one myself.
Suppose I can get a binary driver from somewhere, is there a way to integrate
that driver into SmartOS without rebuilding everything, i.e. add it as an extra
boot file to Grub?
Some more additional info about the I218-V NIC (from Linux):
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-V
(rev 03)
00:19.0 0200: 8086:15a3 (rev 03)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-V
(rev 03)
Subsystem: Intel Corporation Device 2057
Flags: bus master, fast devsel, latency 0, IRQ 43
Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
Memory at f723a000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f060 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
Kernel driver in use: e1000e
00:19.0 0200: 8086:15a3 (rev 03)
Subsystem: 8086:2057
Flags: bus master, fast devsel, latency 0, IRQ 43
Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
Memory at f723a000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f060 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
Kernel driver in use: e1000e
Linux kernel boot messages:
[ 0.214279] pci 0000:00:19.0: [8086:15a3] type 00 class 0x020000
[ 0.214295] pci 0000:00:19.0: reg 0x10: [mem 0xf7200000-0xf721ffff]
[ 0.214303] pci 0000:00:19.0: reg 0x14: [mem 0xf723a000-0xf723afff]
[ 0.214310] pci 0000:00:19.0: reg 0x18: [io 0xf060-0xf07f]
[ 0.214367] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold
[ 0.214423] pci 0000:00:19.0: System wakeup disabled by ACPI
I also found this commit in the Linux kernel:
author Bruce Allan <[email protected]> 2013-06-29 01:15:16 (GMT)
committer Jeff Kirsher <[email protected]> 2013-07-28
10:44:39 (GMT)
commit 91a3d82f380abe24e95a6d3981c06f13894eb2ce
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=91a3d82f380abe24e95a6d3981c06f13894eb2ce>
(patch
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=91a3d82f380abe24e95a6d3981c06f13894eb2ce>)
e1000e: enable support for new device IDs
The device IDs 0x15a0 and 0x15a1 are new SKUs that contain the same MAC as I217
and same PHY as I218. The device IDs 0x15a2 and 0x15a3 are the same as existing
I218 SKUs. Signed-off-by: Bruce Allan <[email protected]> Tested-by:
Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher
<[email protected]>
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h
b/drivers/net/ethernet/intel/e1000e/hw.h
index cee565d..b799fd9 100644
--- a/drivers/net/ethernet/intel/e1000e/hw.h
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/hw.h?id=3ef672ab1862bbd44cc364e72ebd356783ab0243>
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/hw.h?id=91a3d82f380abe24e95a6d3981c06f13894eb2ce>
@@ -90,6 +90,10 @@ struct e1000_hw;
#define E1000_DEV_ID_PCH_LPT_I217_V 0x153B
#define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A
#define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559
+#define E1000_DEV_ID_PCH_I218_LM2 0x15A0
+#define E1000_DEV_ID_PCH_I218_V2 0x15A1
+#define E1000_DEV_ID_PCH_I218_LM3 0x15A2 /* Wildcat Point PCH */
+#define E1000_DEV_ID_PCH_I218_V3 0x15A3 /* Wildcat Point PCH */
#define E1000_REVISION_4 4
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c
b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index b56c61a..78d03d3 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/ich8lan.c?id=3ef672ab1862bbd44cc364e72ebd356783ab0243>
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/ich8lan.c?id=91a3d82f380abe24e95a6d3981c06f13894eb2ce>
@@ -1028,7 +1028,9 @@ static s32 e1000_check_for_copper_link_ich8lan(struct
e1000_hw *hw)
/* Work-around I218 hang issue */
if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
- (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
+ (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
+ (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) ||
+ (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) {
ret_val = e1000_k1_workaround_lpt_lp(hw, link);
if (ret_val)
return ret_val;
@@ -4203,7 +4205,9 @@ void e1000_suspend_workarounds_ich8lan(struct e1000_hw
*hw)
u16 phy_reg, device_id = hw->adapter->pdev->device;
if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) ||
- (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) {
+ (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) ||
+ (device_id == E1000_DEV_ID_PCH_I218_LM3) ||
+ (device_id == E1000_DEV_ID_PCH_I218_V3)) {
u32 fextnvm6 = er32(FEXTNVM6);
ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c
b/drivers/net/ethernet/intel/e1000e/netdev.c
index 51b05fe..650e569 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/netdev.c?id=3ef672ab1862bbd44cc364e72ebd356783ab0243>
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/netdev.c?id=91a3d82f380abe24e95a6d3981c06f13894eb2ce>
@@ -6975,6 +6975,10 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci_tbl) = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt },
{ 0, 0, 0, 0, 0, 0, 0 } /* terminate list */
};
Is there any hope to get this running?
Thanks for any help.
-Dirk
> Am 12.02.2015 um 16:57 schrieb Robert Mustacchi via smartos-discuss
> <[email protected]>:
>
> On 2/12/15 5:21 , Dirk Steinberg via smartos-discuss wrote:
>> Does anyone know if SmartOS/SDC will run on this hardware,
>> especially on the new Broadwell CPU architecture?
>
> We haven't gotten samples of Broadwell and tested anything, primarily
> because we focus on the multi-socket Xeon lines which aren't out yet.
> We'll probably get samples of the normal desktop CPUs at some point, but
> I don't really know when.
>
> In general, I don't know of anything at the CPU architecture level that
> would cause things not to work, often it just means that a new feature
> or instruction just isn't plumbed through into the OS.
>
>> To add to my previous question: Is there any chance to
>> get M.2 PCIe based SSDs working with SmartOS?
>> These fast SSDs could be quite interesting for use with ZFS.
>
> It really depends. With a lot of these PCI SSDs, the question is how do
> they identify themselves. Most want a custom driver, in which case we
> probably don't have a driver for it. However, some may just identify as
> an ahci controller. So, at the end of the day, I'd suggest getting a
> sample, trying it, and returning it if it doesn't work.
>
> Robert
>
>
> -------------------------------------------
> smartos-discuss
> Archives: https://www.listbox.com/member/archive/184463/=now
> RSS Feed: https://www.listbox.com/member/archive/rss/184463/24390006-796fb66c
> Modify Your Subscription: https://www.listbox.com/member/?&
> Powered by Listbox: http://www.listbox.com
-------------------------------------------
smartos-discuss
Archives: https://www.listbox.com/member/archive/184463/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00
Modify Your Subscription:
https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb
Powered by Listbox: http://www.listbox.com