Mikrotik RB922/RB921 QCA9557 & QCA9882 support?

Hi all. I don't have this hardware in hand to test with. I do see some other units with QCA9882 and QCA9557 supported.

Has anyone got LEDE up and running on this board? These are in the Netmetal5 Mikrotik units as well as the stand alone RB922 boards

These boards arejust about perfect for a BATMAN-ADV mesh unit because they come in weatherproof cases and have a mini-pci-e slot for a second radio.


Yes indeed would make nice mesh box, im also interested to see, the closest i am
currently testing LibreMesh on a RB912UAG-5HPnD (Basebox 5) with a ath5k Mini PCI-express card

Whats the full model?


LEDE will work on it,I have it running on Basebox 2.
Only thing is that LED GPIO is connected to buzzer so you can hear buzzer working when there is data going.

I havent got around to modifying LEDE to detect it because it is detected as RB912UAG-2HPnD and NAND and couple of GPIOs do not match.
Mikrotik really messed up by using same board identifier for two different boards.

QCA9882 will work for sure in Mini PCI-E slot,but you gotta modify LEDE board configuration for it to include ath10k driver and also calibration data must be extracted

Oh good, i want to add a ath10k card, still waiting for it

Hi @syadnom,

I've had some success in supporting the RB922UAGS-5HPacD and the mANTBox 15s (which is actually a stripped-down version of the bare board with neither PCI nor USB sockets soldered fitted in an outdoor enclosure with a sector antenna). I guess the NetMetal devices will be quite similar.

You may want to take a look at my repository (see the rb-922uags-5hpacd and rb-921gs-5hpacd-r2 branches); booting the initramfs works fine but please bear in mind that flashing the sysupgrade image corrupts NAND blocks and renders the memory unusable as, afterwards, blocks report ECC read errors. It does not actually damage the hardware; the blocks can be recovered by erasing/formatting the NAND flash, but it's not trivial and requires patching the kernel's NAND driver.

I'll be opening a new forum thread to see if anybody can help me with the NAND issue...

The RB922UAGS-5HPacD and the mANTBox 15s are now supported upstream in OpenWrt/LEDE.


I've been adding support for the rb922 and just stumbled on this thread.

Would you agree if I finish this up based on your patches?
Or feel free to submit them :slight_smile:





This is great! If you want, I can give it a try on my board. :slightly_smiling_face:

Please, go ahead and submit it. :+1:

Since the ar71xx target is to be deprecated, some days ago I tried to add support for the RB92x series boards on the ath79 one, but I couldn't even make it boot. Maybe you can give it a try.




Thanks for confirming.
Everything on the board works currently
Only when trying to flash to nand, the board reboots.

Ill try to fix it tomorrow. :slight_smile:



Wow, brilliant!

The NAND part used to work fine for me back then; what I could never make work was the PCIe slot.

Is the SPF cage workinkg? I didin't have a module, so I couldn't test it.

Let me please know when you create the pull request, I'll test it and tell you.


The sfp is not working.
I also dont see any code for it in the board file.

Any idea if there is a uart trace somewhere which outputs the bootlog?
The few pads dont expose it.

Measuring with a scope shows signal traffic, but its not serial.



Feel free to test my staging tree. (ramfs)
You just cant flash it to nand.


Found the serial.
It seems my fancy new TTL level shifter is triggering around 5V, while the uart is 3V3
Using my trusty (but bulky) 3V3 shifter it works.

Checking NAND ..



I just finished the support for the RB922.
It works nicely here now.

Only things that don't work are:

  • Switch USB from PCI-e to Type-A slot
  • SFP port

As the RB921 doesn't have USB, I've added some code which only initializes USB if the board contains it.



Nice! I'll give it a try tomorrow. I missed your previous messages about the UART, sorry. :confused:

Sorry, I'm not sure I understand it. What do you mean? I believe the USB Type-A was working for me.

Makes total sense.



I'm trying your staging tree's commit, seems to be working fine. :+1: A couple of comments:

  1. How do you switch from the mPCIe USB to the USB A socket?


  1. I need to enable GPIO13 and set it to "0" in order to power the USB A socket:
echo 13 > /sys/class/gpio/export
echo 0 > /sys/class/gpio/gpio13/value

May you consider something like this?

if (strcmp(info->board_name, "922UAGS-5HPacD") == 0) {
		gpio_request_one(RB922_GPIO_USB_POWER, GPIOF_OUT_INIT_LOW |
"USB power");


  1. Are the RSSI LEDs working for you, or just the user LED?



Thanks for testing!

Feel free to send me a patch based on my staging tree, and I can still add it to the original commit. (together with your SoB tag)



Hi Koen,

Please check https://github.com/rogerpueyo/openwrt/tree/ar71xx-rb-922uags-5hpacd-xback

Now the device is working we should consider adding support in the ath79 target :stuck_out_tongue:



I updated the patch in my staging with a fix as proposed by you,
but slightly reworked to also control USB power as a separate flag

Compiled & tested, I can confirm it works.

I also added your SoB in there.

Please let me know if this is acceptable for you.
If yes, I'll push it to master tomorrow.

Porting to ath79 is indeed the next logical step.
I got someone on chat who is also interested and may provide the code for making the SFP slot work :slight_smile:

Thanks for your efforts!