Laptop with AMD 'Cezanne' graphics + Nvidia RTX 3060

So I have this Acer Nitro 5 running FreeBSD 13.0-RELEASE (fresh install), and I'm wondering if it's possible to get nvidia-driver to work on it. The BIOS has no option to disable the onboard graphics. If I startx with nvidia.ko loaded and 'device "nvidida"' in the config, I get "no screens found". If I load 'amdgpu.ko' and remove the 'device' config, then X works just fine. Is it possible to get the nvidia driver working? Also, I apologize for my ignorance, but if I were to use the integrated graphics, I'm a bit confused as to whether I need the xf86-video-ati pkg as well (in addition to the loaded kernel module). I obviously have X working without xf86-video-ati, but will it make any difference if I install it?

One side question, out of curiosity, is there any architectural barrier in X11's design that prevents the use of multi-GPU setups? You always hear about how you can't get the dedicated GPU to work on Optimus systems, but what's the technical reason behind it if the manufacturer (Nvidia in this case) is releasing drivers for it (even if it's a blob)?

See attachments.

My touchpad/mouse isn't working either, but I'll start another thread for that once I have the "correct" graphics setup.
 

Attachments

  • pciconf.txt
    9.1 KB · Views: 66
  • amdgpu.Xorg.log.txt
    15.2 KB · Views: 78
  • nvidia.Xorg.log.txt
    4 KB · Views: 72
If I startx with nvidia.ko loaded and 'device "nvidida"' in the config, I get "no screens found".
You need to turn the switcheroo muxer first.
Check /var/run/dmesg.boot. I think the amd is the boot vga, right?

I'm a bit confused as to whether I need the xf86-video-ati pkg as well (in addition to the loaded kernel module). I obviously have X working without xf86-video-ati, but will it make any difference if I install it?
Yes.
The majority of the driver options for xorg.conf are handled by the ati driver, have no effect if only using the amdgpu kms driver.

One side question, out of curiosity, is there any architectural barrier in X11's design that prevents the use of multi-GPU setups? You always hear about how you can't get the dedicated GPU to work on Optimus systems, but what's the technical reason behind it if the manufacturer (Nvidia in this case) is releasing drivers for it (even if it's a blob)?
No. It depends on the hardware (offloader or switcheroo). Both are different.
Multi-GPU (by the same manufacturer) is not supported by AMD, only by Nvidia. But multiple Nvidia graphics cards obviously are no laptop issue.

My touchpad/mouse isn't working either, but I'll start another thread for that once I have the "correct" graphics setup.
The multitude of issues with that lappy is impressive.

Can't you just google it? Both of you.
I love the Russians' bitchiness bluntness. 👍
 
Looking at your Xorg logs, neither amd or nvidia gpus are working (you are using scfb which is software rendering).
You could try to use this config (still software rendering, but you may be able to use the nvidia driver with prime)
Code:
Section "ServerLayout"
  Identifier "layout"
  Screen     0 "iGPU"
  Screen     1 "dGPU"
EndSection

Section "Device"
  Identifier "iGPU"
  Driver     "scfb"
  BusID      "PCI:6:0:0"
EndSection

Section "Device"
  Identifier "dGPU"
  Driver     "nvidia"
  BusID      "PCI:1:0:0"
EndSection

Section "Screen"
  Identifier "iGPU"
  Device     "iGPU"
EndSection

Section "Screen"
  Identifier "dGPU"
  Device     "dGPU"
  Option  "UseDisplayDevice" "None"
EndSection
And of course try it with the 510.47.03 version of nvidia driver that you can get the patch here
PR 261666
 
Hello guys.

I have a laptop with similar setup (Lenovo IP 3), AMD Cezanne + nVidia RTX 3050. Whatever I tried I could not get Xorg working neither with internal AMD nor with nVidia graphics, except using "scfb" driver.

If I load nvidia modules and configure X to use "nvidia" driver, the X stucks with a black screen (and white cursor in the corner) during mode switch. Tried it with nvidia-driver 470. The latest 510.54 driver make Xorg 1.20.13 to crash. Proposed patch does not solve this issue.


If I unload nvidia and nvidia-modeset modules and try loading amdgpu instead, it seems the latter does not load properly. I can see only this line in dmesg and no GPU specific modules are loaded.

Code:
[drm] amdgpu kernel modesetting enabled.

Starting X this way gets me to:

Code:
(II) AMDGPU(0): [KMS] drm report modesetting isn't supported.
(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
(EE) Screen 0 deleted because of no matching config section.
(II) UnloadModule: "amdgpu"
(EE) Device(s) detected, but none match those in the config file.
(EE)
Fatal server error:
(EE) no screens found(EE)

Tried with graphics/drm-fbsd13-kmod.

What do I do wrong with amdgpu and how to get any of the graphics to work ?
 
I'm not familiar with Cezanne, is there a more specific identification?
Here's what pciconf -l shows:

Code:
vgapci1@pci0:5:0:0:     class=0x030000 rev=0xc6 hdr=0x00 vendor=0x1002 device=0x1638 subvendor
=0x17aa subdevice=0x3a5d

I compiled and installed graphics/drm-fbsd13-kmod port (which is drm-kmod 5.4-stable). Then I did kldload amdgpu and could see it did not instantiate and did not upload firmware. I read somewhere that my device_id=0x1638 could be missing in amdgpu_drv.c and it really was, so I added it manually, recompiled and got this:

Code:
This hardware requires experimental hardware support.
                         See modparam exp_hw_support.

I edited amdgpu_drv.c again to set amdgpu_exp_hw_support to 1. Now it does load firmware successfully, I could see lots of messages from amdgpu drivers...

Code:
[drm] amdgpu kernel modesetting enabled.
drmn1: <drmn> on vgapci1
VT: Replacing driver "efifb" with new "dummy".
vgapci1: child drmn1 requested pci_enable_io
vgapci1: child drmn1 requested pci_enable_io
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
[drm] initializing kernel modesetting (RENOIR 0x1002:0x1638 0x17AA:0x3A5D 0xC6).
[drm] register mmio base: 0xD1400000
[drm] register mmio size: 524288
[drm] add ip block number 0 <soc15_common>
[drm] add ip block number 1 <gmc_v9_0>
[drm] add ip block number 2 <vega10_ih>
[drm] add ip block number 3 <psp>
[drm] add ip block number 4 <smu>
[drm] add ip block number 5 <gfx_v9_0>
[drm] add ip block number 6 <sdma_v4_0>
[drm] add ip block number 7 <vcn_v2_0>
drmn1: successfully loaded firmware image 'amdgpu/renoir_gpu_info.bin'
drmn1: kfd not supported on this ASIC

ATOM BIOS: 113-CEZANNE-018
drmn1: successfully loaded firmware image 'amdgpu/renoir_sdma.bin'
[drm] VCN decode is enabled in VM mode
[drm] VCN encode is enabled in VM mode
[drm] VCN jpeg decode is enabled in VM mode
[drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
drmn1: VRAM: 4096M 0x000000F400000000 - 0x000000F4FFFFFFFF (4096M used)
drmn1: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
drmn1: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
Successfully added WC MTRR for [0xfc10000000-0xfc1fffffff]: 0;
[drm] Detected VRAM RAM=4096M, BAR=256M
[drm] RAM width 128bits UNKNOWN
[TTM] Zone  kernel: Available graphics memory: 10393078 KiB
[TTM] Zone   dma32: Available graphics memory: 2097152 KiB
[TTM] Initializing pool allocator
[drm] amdgpu: 4096M of VRAM memory ready
[drm] amdgpu: 4096M of GTT memory ready.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
drmn1: successfully loaded firmware image 'amdgpu/renoir_asd.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_pfp.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_me.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_ce.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_rlc.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_mec.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_mec2.bin'
[drm] use_doorbell being set to: [true]
drmn1: successfully loaded firmware image 'amdgpu/renoir_vcn.bin'
[drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 17
[drm] PSP loading VCN firmware
sos fw version = 0x110068.
[drm] reserve 0x400000 from 0xf4ff800000 for PSP TMR
amdgpu: [powerplay] smu driver if version = 0x0000000a, smu fw if version = 0x0000000e, smu fw version = 0x00402d00 (64.45.0)
amdgpu: [powerplay] SMU driver if version not matched
amdgpu: [powerplay] dpm has been disabled
amdgpu: [powerplay] SMU is initialized successfully!
[drm] VCN decode and encode initialized successfully(under DPG Mode).
drmn1: ring gfx uses VM inv eng 0 on hub 0
drmn1: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn1: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn1: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn1: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn1: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn1: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn1: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn1: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn1: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn1: ring sdma0 uses VM inv eng 0 on hub 1
drmn1: ring vcn_dec uses VM inv eng 1 on hub 1
drmn1: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn1: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn1: ring vcn_jpeg uses VM inv eng 6 on hub 1
[drm] Initialized amdgpu 3.35.0 20150101 for drmn1 on minor 0

Yet it does not work. System goes instant reboot soon as Xorg accesses the driver (not panic).

So I conclude that drm-kmod 5.4-stable is NOT capable. I git clone latest drm-kmod from Github and am trying to build it now. I'm facing lots of "file not found" compile errors related to linux kernel includes. How do they build drm-kmod ? I have freebsd src installed, what else do I need ?

I'm brain-fscking with this amdgpu issue for almost a week now. I hope I could get it resolved, I definitely do not want Linux on my laptop, which works "out of the box", darn! :-(
 
… I git clone latest drm-kmod from Github and am trying to build …

Easier to build from ports i.e. /usr/ports, have you done so before?

If not – and if you have not previously fetched the ports collection:
  1. use bectl(8) to create, activate then boot a new boot environment
  2. uninstall any installed DRM
  3. mkdir -p /usr/local/etc/pkg/repos
  4. ee /usr/local/etc/pkg/repos/FreeBSD.conf
  5. put the content below in the file, save the file
  6. pkg upgrade
  7. pkg install --yes gitup
  8. gitup ports
  9. grep releng /usr/local/etc/gitup.conf
  10. edit the file if necessary
  11. gitup release
  12. cd /usr/ports/graphics/drm-devel-kmod
  13. make install clean
  14. kldload amdgpu
… something like that, I'm writing quite lazily at the moment.

If the module will not load with FreeBSD 13.0-RELEASE-p7, then (edit gitup.conf et cetera and) try with 13.1-BETA1.

Code:
FreeBSD: {
    url: "http://pkg0.bme.freebsd.org/${ABI}/latest",
    priority: 3
}

Afterthought: if you're confident with git-clone(1) etc., then you can use git commands in lieu of gitup.
 
According to the FreeBSD Graphics wiki page, you can try either VESA or SCFB if you're struggling with GPU-specific drivers like amdgpu. From personal experience (albeit back in 2017 with PC-BSD, which used scfb by default), I can tell you that it works pretty well. YMMV, though.
 
𡀦… My new card got support at 5.11 😅

1647193565597.png


… was there recently a case where someone found a modern card working with something lower than the 'expected' version of Linux DRM?

(<https://forums.freebsd.org/posts/559136> came to mind, but there's no mention of DRM versions.)

No timeline,

Correction: <https://forums.freebsd.org/posts/541407> reminds me of the timeline that was envisaged last year.
 
AMD Cezanne got support around 5.14, our drm drivers are currently at 5.4-5.7.

That's not true, Cezanne support was backported to 5.7 in Linux. I have built and installed drm-kmod 5.7.19 successfully from 13.1-BETA1 ports, it has device_id 0x1638 listed. The amdgpu driver now loads ok on my laptop, see dmesg below. But I stumbled against another problem: Xorg 1.20.13 just segfaults when trying to access amdgpu driver. I have posted some info here: https://github.com/freebsd/drm-kmod/issues/118

Code:
[drm] amdgpu kernel modesetting enabled.
drmn1: <drmn> on vgapci1
vgapci1: child drmn1 requested pci_enable_io
vgapci1: child drmn1 requested pci_enable_io
[drm] initializing kernel modesetting (RENOIR 0x1002:0x1638 0x17AA:0x3A5D 0xC6).
[drm] register mmio base: 0xD1400000
[drm] register mmio size: 524288
[drm] add ip block number 0 <soc15_common>
[drm] add ip block number 1 <gmc_v9_0>
[drm] add ip block number 2 <vega10_ih>
[drm] add ip block number 3 <psp>
[drm] add ip block number 4 <smu>
[drm] add ip block number 5 <gfx_v9_0>
[drm] add ip block number 6 <sdma_v4_0>
[drm] add ip block number 7 <dm>
[drm] add ip block number 8 <vcn_v2_0>
[drm] add ip block number 9 <jpeg_v2_0>
drmn1: successfully loaded firmware image 'amdgpu/renoir_gpu_info.bin'
ATOM BIOS: 113-CEZANNE-018
drmn1: successfully loaded firmware image 'amdgpu/renoir_sdma.bin'
[drm] VCN decode is enabled in VM mode
[drm] VCN encode is enabled in VM mode
[drm] JPEG decode is enabled in VM mode
[drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
drmn1: VRAM: 4096M 0x000000F400000000 - 0x000000F4FFFFFFFF (4096M used)
drmn1: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
drmn1: AGP: 267419648M 0x000000F800000000 - 0x0000FFFFFFFFFFFF
[drm] Detected VRAM RAM=4096M, BAR=4096M
[drm] RAM width 128bits DDR4
[TTM] Zone  kernel: Available graphics memory: 10393088 KiB
[TTM] Zone   dma32: Available graphics memory: 2097152 KiB
[TTM] Initializing pool allocator
iwlwifi0: base HW address: 80:38:fb:dc:30:1b
[drm] amdgpu: 4096M of VRAM memory ready
[drm] amdgpu: 4096M of GTT memory ready.
[drm] GART: num cpu pages 262144, num gpu pages 262144
[drm] PCIE GART of 1024M enabled (table at 0x000000F400900000).
drmn1: successfully loaded firmware image 'amdgpu/renoir_asd.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_pfp.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_me.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_ce.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_rlc.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_mec.bin'
drmn1: successfully loaded firmware image 'amdgpu/renoir_mec2.bin'
[drm] use_doorbell being set to: [true]
drmn1: successfully loaded firmware image 'amdgpu/renoir_dmcub.bin'
[drm] Loading DMUB firmware via PSP: version=0x00000000
drmn1: successfully loaded firmware image 'amdgpu/renoir_vcn.bin'
[drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 17
[drm] PSP loading VCN firmware
sos fw version = 0x110068.
[drm] reserve 0x400000 from 0xf4ff800000 for PSP TMR
ugen0.3: <Azurewave Integrated Camera> at usbus0
smu driver if version = 0x0000000b, smu fw if version = 0x0000000e, smu fw version = 0x00402d00 (64.45.0)
SMU driver if version not matched
SMU is initialized successfully!
[drm] kiq ring mec 2 pipe 1 q 0
[drm] Display Core initialized with v3.2.76!
[drm] DMUB hardware initialized: version=0x01020003
[drm] Connector eDP-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.eDP-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] VCN decode and encode initialized successfully(under DPG Mode).
[drm] JPEG decode initialized successfully.
[drm] fb mappable at 0x530C8D000
[drm] vram apper at 0x530000000
[drm] size 8294400
[drm] fb depth is 24
[drm]    pitch is 7680
VT: Replacing driver "efifb" with new "fb".
start FB_INFO:
type=11 height=1080 width=1920 depth=32
pbase=0x530c8d000 vbase=0xfffffe012028d000
name=drmn1 flags=0x0 stride=7680 bpp=32
end FB_INFO
drmn1: ring gfx uses VM inv eng 0 on hub 0
drmn1: ring comp_1.0.0 uses VM inv eng 1 on hub 0
drmn1: ring comp_1.1.0 uses VM inv eng 4 on hub 0
drmn1: ring comp_1.2.0 uses VM inv eng 5 on hub 0
drmn1: ring comp_1.3.0 uses VM inv eng 6 on hub 0
drmn1: ring comp_1.0.1 uses VM inv eng 7 on hub 0
drmn1: ring comp_1.1.1 uses VM inv eng 8 on hub 0
drmn1: ring comp_1.2.1 uses VM inv eng 9 on hub 0
drmn1: ring comp_1.3.1 uses VM inv eng 10 on hub 0
drmn1: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
drmn1: ring sdma0 uses VM inv eng 0 on hub 1
drmn1: ring vcn_dec uses VM inv eng 1 on hub 1
drmn1: ring vcn_enc0 uses VM inv eng 4 on hub 1
drmn1: ring vcn_enc1 uses VM inv eng 5 on hub 1
drmn1: ring jpeg_dec uses VM inv eng 6 on hub 1
sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)!
[drm] Initialized amdgpu 3.37.0 20150101 for drmn1 on minor 0
 
Neither graphics/drm-kmod nor graphics/drm-devel-kmod can be built on 13.0-REALEASE, make reports some missing kernel support. I could built graphics/drm-kmod successfully only after I upgrade to 13.1-BETA1.

Now another issue, packages in 13.1-BETA1 are three-to-four months lag behind those in 13.0-RELEASE. WTF ?
That's probably because you needed to install kernel sources (src.txz) when you installed the system. If you don't install kernel sources, then graphics/drm-kmod will fail to build. I'd know, I'm running 13.0-RELEASE with graphics/drm-kmod and amdgpu. :p
 
According to the FreeBSD Graphics wiki page, you can try either VESA or SCFB if you're struggling with GPU-specific drivers like amdgpu. From personal experience (albeit back in 2017 with PC-BSD, which used scfb by default), I can tell you that it works pretty well. YMMV, though.

Yes, I can run Xorg with scfb or modesetting drivers quite ok, but I need hardware GLE because I'm heavy KiCAD and FreeCAD user, KiCAD since 6.0.2 does not run at all if there's no GLE support. That was my aim or purchasing this new laptop.
 
That's probably because you needed to install kernel sources (src.txz) when you installed the system.

I'm FeeBSD user since around '96, I'm used to always install kernel source codes along with usr.bin src same time I install FreeBSD on a new machine. :)
 
I'm FeeBSD user since around '96, I'm used to always install kernel source codes along with usr.bin src same time I install FreeBSD on a new machine. :)
FreeBSD plays decent with Lenovo laptops, but after all this time, it's still a hit and miss, more miss with newer laptops. I'd suggest building a PC from aftermarket components, then you can do your homework on what's actually compatible. Laptops are not that flexible with hardware. I would know, I have a few. :)
 
Laptops are not that flexible with hardware. I would know, I have a few. :)
You are absolutely right. I have had to switch from Mediatek WiFi adapter to Intel AX200, thankfully it's M.2 formfactor. Till now, GPU issue is the only left unresolved on this laptop. And since I upgraded to 13.1-BETA1 it suspends/resumes perfectly! :)

Just in case someone is interested, this Lenovo IP 3 equipped with I2C-HID Touchpad made by ELAN. To make it work one has to put both ig4 and iichid modules in kld_list and configure evdev input in Xorg.conf.
 
Hi all,

Any news since March?
I bought a brand new Asus laptop with RTX 3050 + AMD Cezzane which, unfortunately, has no option to turn off the onboard card, and even with the latest NVidia driver (from its own website - I also tested with the ports version) is segfaulting during the start:

Code:
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Jul 22 17:59:42 2022
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
(EE)
(EE) Backtrace:
(EE) 0: /usr/local/bin/Xorg (?+0x0) [0x41e2aa]
(EE) 1: /lib/libthr.so.3 (_pthread_sigmask+0x54e) [0x82961258e]
(EE) 2: /lib/libthr.so.3 (_pthread_setschedparam+0x82f) [0x829611b3f]
(EE) 3: ? (?+0x0) [0x7ffffffff8a3]
(EE) 4: ? (?+0x0) [0x0]
(EE) 5: /usr/local/lib/xorg/modules/drivers/nvidia_drv.so (nvidiaUnlock+0x4201f) [0x83c6a8c1f]
(EE) 6: ? (?+0x0) [0x0]
(EE) unw_step failed: unspecified (general) error [-1]
(EE)
(EE) Segmentation fault at address 0x0
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)
(EE)
 
Hi bmeneg,

Yes it now works fine on Cezanne. You have to git clone drm-kmod manually, switch to branch 5.10-lts, apply below simple patch to disable HDCP, build and install new modules.

Code:
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
index b0ee77ee8..58ba7bf60 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
@@ -49,9 +49,14 @@ static int psp_v12_0_init_microcode(struct psp_context *psp)
 {
        struct amdgpu_device *adev = psp->adev;
        const char *chip_name;
+#ifdef __linux__
        char fw_name[30];
        int err = 0;
        const struct ta_firmware_header_v1_0 *ta_hdr;
+#elif defined(__FreeBSD__)
+       /* We do not support HDCP in drm-kmod yet */
+       int err = 0;
+#endif
        DRM_DEBUG("\n");
 
        switch (adev->asic_type) {
@@ -69,6 +74,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp)
        if (err)
                return err;
 
+#ifdef __linux__
        snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name);
        err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev);
        if (err) {
@@ -113,6 +119,7 @@ out:
                        "psp v12.0: Failed to load firmware \"%s\"\n",
                        fw_name);
        }
+#endif
 
        return err;
 }
 
Top