The "0x80001000" address logically comes from "loadaddr-y" variable for
mt7621 subtarget. Let's replace the hardcoded value with the predefined
variable. This change is purely cosmetic.
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
Contrary to common ipTIME NOR devices, the "Config" partition of T5004
and AX2004M contain normal U-Boot environment variables. Renaming the
partition into "u-boot-env" serves for better description, and it also
conforms to common naming practice in OpenWrt.
This patch might also be extended to A3004T, but its u-boot-env
partition layout has not been confirmed yet.
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
AX2004M uses NMBM on its NAND flash, but it was not enabled in DTS as the
device support [1] had been added before NMBM feature in mtk_bmt driver [2].
Let's enable it now.
With this change, there is a low possibility of boot failure after
sysupgrade from older versions. As AX2004M already has gone through
two stable releases in the meantime, it would be safe to warn users
by bumping DEVICE_COMPAT_VERSION.
[1] 37753f34ac ("ramips: add support for ipTIME AX2004M")
[2] 06382d1af7 ("kernel: add support for mediatek NMBM flash mapping support")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
The COVR-C1200 devices are sold as "Whole Home Mesh Wi-Fi"
sets in packs of two (COVR-C1202) and three (COVR-C1203).
Specifications:
* QCA9563, 16 MiB flash, 128 MiB RAM, 2x3:2 802.11n
* QCA9886 2x2:2 801.11ac Wave 2
* AR8337, 2 Gigabit ports (1: WAN; 2: LAN)
* USB Type-C power connector (5V, 3A)
Installation COVR Point A:
* In factory reset state: OEM Web UI is at 192.168.0.50
no DHCP, skip wizard by directly accessing:
http://192.168.0.50/UpdateFirmware_Simple.html
* After completing setup wizard: Web UI is at 192.168.0.1
DHCP enabled, login with empty password
* Flash factory.bin
* Perform a factory reset to restore OpenWrt UCI defaults
Installation COVR Points B:
* OEM Web UI is at 192.168.0.50, no DHCP, empty password
* Flash factory.bin
* Perform a factory reset to restore OpenWrt UCI defaults
Recovery:
* Keep reset button pressed during power on
* Recovery Web UI is at 192.168.0.50, no DHCP
* Flash factory.bin
used to work best with Chromium-based browsers or curl:
curl -F firmware=@factory.bin \
http://192.168.0.50/upgrade.cgi
since this fails to work on modern Linux systems,
there is also a script dlink_recovery_upload.py
Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Include a statement about having to run the installer in the
sysupgrade compat warning for the Linksys E8450 (UBI).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Probing of the fitblk driver in some situations happens after the kernel
attempts to mount rootfs, which then fails.
Always use 'rootwait' when using fitblk for rootfs.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Cleanup uart1-related node on ELECOM WAB-I1750-PS and enable it for
"SERIAL" port on the case.
"SERIAL" port can be used for OpenWrt console by adding the following
line to /etc/inittab and rebooting:
ttyATH1::askfirst:/usr/libexec/login.sh
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Add aliases with "serialN = &uartN;" of uart0/1 on QCA955x SoCs to
qca955x.dtsi, to enable uart1 on Linux Kernel.
without this:
[ 0.342915] ar933x-uart 18500000.uart: unable to get alias id, err=-19
Additionally, remove "serial0 = &uart;" alias from QCA955x device
dts/dtsi files.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Add HighSpeed UART support to QCA955x series SoCs as a secondary UART
(uart1). This UART is compatible with qca,ar9330-uart.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Rename the DT label of the primary UART on Qualcomm Atheros QCA955x
series SoCs to "uart0" from "uart" for the preparation to add HighSpeed
UART (uart1) support.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
with 6.1, the kernel no longer fitted into the 16 MiB and
kicking down the can and increasing KERNEL_SIZE to 20 MiB
didn't help as the device failed to boot.
Using 'kernel-bin | gzip | uimage gzip' didn't work since the
uboot does not have enough heap to decompress these big kernels.
And finally playing around with uboot was more a hassle than
converting this device to take the simpleImage-boot-route in
the future.
Note: The device now takes even longer on the first boot-up after
the flash due to JFFS2 initializing all the remaining flash.
Be prepared to wait up to 10 minutes before the green status LED
stops blinking and will shine a solid green!
(On the plus site: the device now has ~10 MiB of additional
space for rootfs+rootfs_data).
Note2: This patch includes a kernel patch refresh.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Kernel and initramfs size grows. Now uncompressed initramfs image and
regular kernel image overlaps configured area:
Initramfs:
WRAP arch/powerpc/boot/simpleImage.br200-wp
INFO: Uncompressed kernel (size 0x1428688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1500000)
WRAP arch/powerpc/boot/simpleImage.tl-wdr4900-v1
INFO: Uncompressed kernel (size 0x1428688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1500000)
WRAP arch/powerpc/boot/simpleImage.ws-ap3715i
INFO: Uncompressed kernel (size 0x1428688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1500000)
Regular image:
WRAP arch/powerpc/boot/simpleImage.br200-wp
INFO: Uncompressed kernel (size 0x10e0688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1100000)
WRAP arch/powerpc/boot/simpleImage.tl-wdr4900-v1
INFO: Uncompressed kernel (size 0x10e0688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1100000)
WRAP arch/powerpc/boot/simpleImage.ws-ap3715i
INFO: Uncompressed kernel (size 0x10e0688) overlaps the address of the
wrapper(0x1000000)
INFO: Fixing the link_address of wrapper to (0x1100000)
Let's change wrapper address to safe value.
Tested on: TL-WDR4900, BR200-WP
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This patch replaces 'of_flat_dt_is_compatible' with 'of_machine_is_compatible'.
The TL-WDR4900 platform file won't compile in the 6.1 kernel. The platform
files for the rest of the routers have been reworked or based on newer
solutions.
Let's make the TL-WDR4900 consistent with them.
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
This fixes the following compile problem:
````
CC arch/mips/kernel/vpe-mt.o
arch/mips/kernel/vpe-mt.c: In function 'vpe_run':
arch/mips/kernel/vpe-mt.c:32:23: error: unused variable 'physical_memsize' [-Werror=unused-variable]
32 | unsigned long physical_memsize = 0L;
| ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[6]: *** [scripts/Makefile.build:289: arch/mips/kernel/vpe-mt.o] Error 1
````
physical_memsize was removed from upstream kernel, see:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=5b4f6c5ff65c8551018ccea40c569afd759734c0
Fixes: 387fde0da0 ("kernel: bump 5.15 to 5.15.150")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Commit 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible") leaves Xiaomi Redmi AX6000 un-converted,
the two LEDs become dead.
Now, LEDs are alive again.
Fixes: 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible")
Signed-off-by: Furong Xu <xfr@outlook.com>
ath25 has been on life support for the last couple of releases, eventually
leading to marking it as source-only in 2023.
It has been basically only touched to do a kernel bump so that we can make
the new OpenWrt release which was a challenge due to small RAM amount.
However, with the attempt of kernel 6.1 update it turns out that kernel
cannot even finish booting due to RAM constraints, so its time to let this
target go.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Netgear WAX214 is a 802.11 ax dual-band AP
with PoE. (similar to Engenius EWS357APV3)
Specifications:
• CPU: Qualcomm IPQ6010 Quad core Cortex-A53
• RAM: 512MB of DDR3
• Storage: 128MB NAND (Macronix MX30UF1G18AC)
• Ethernet: 1x 1G RJ45 port (QCA8072) PoE
• WIFI:
2.4GHz: Qualcomm QCN5022 2x2 802.11b/g/n/ax 574 Mbps PHY rate
5GHz: Qualcomm QCN5052 2x2 802.11a/b/g/n/ac/ax 1201 PHY rate
• LEDs:
4 x GPIO-controlled LEDs
- 1 Power LED (orange)
- 1 LAN LED (blue)
- 1 WIFI 5g LED (blue)
- 1 WIFI 2g LED (blue)
black_small_square Buttons: 1x soft reset
black_small_square Power: 12V DC jack or PoE (802.3af )
An populated serial header is onboard, format is
1.25mm 4p (DF13A-4P-1.25H)
RX/TX is working, bootwait is active, secure boot is not
enabled.
The root password of the stock firmware is unknown,
but failsafe mode can be entered to reset the password.
Installation Instructions:
- obtain serial access
- stop auto boot (press "4", Entr boot command line
interface)
- setenv active_fw 0 (to boot from the primary rootfs,
or set to 1 to boot from the secondary rootfs
partition)
- saveenv
- tftpboot the initramfs image
- bootm
- copy
openwrt-qualcommax-ipq60xx-netgear_wax214-squashfs-factory.ubi
to the device
- write the image to the NAND:
- cat /proc/mtd and look for rootfs partition (should
be mtd11,
or mtd12 if you choose active_fw 1)
- ubiformat /dev/mtd11 -f -y
openwrt-qualcommax-ipq60xx-netgear_wax214-squashfs-factory.ubi
- reboot
Note: the firmware is senao-based. But I was unable to build
a valid senao-header into the image.
Maybe they changed the header format and senaoFW isn't
working any more.
Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
BCM63xx maintainance is a PITA since there's no full Device Tree support and
therefore every board needs it's own definition in board_bcm963xx.c
There's no DSA support for this board and there have been very few
contributions in the last years.
Moreover, BCM63xx SoCs >= BCM6358 are already supported in bmips target, so
any efforts to keep this target alive aren't worth the time.
Let's focus the community efforts on improving bmips instead.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
The SolidRun ClearFog Pro is a router based on the SolidRun CN9130 SOM.
Specs:
- SoC: Quad-Core Cortex-A72 CN9130 SoC
- RAM: 4GiB DDR4
- Serial: Micro-USB port on front (FT232R, 115200 8n1)
- Storage: 8GiB eMMC, microSD card slot, 8MiB SPI NOR flash
- Ethernet: 7x GbE (1 port dedicated on SoC, 6 port switch with single GbE CPU port)
- SFP: 1x SFP+
- USB: 1x USB-A 3.1 Gen 1
- PCIe: 2x mini PCIe (one slot with USB and SIM card socket)
- SATA: 1x M.2 Key-B
In addition to the usual connectivity options this device also features
an internal mikroBUS expansion connector.
SATA is currently untested due to lack of a suitable M.2 SSD.
Installation
============
1. Write sdcard sysupgrade image to microSD card using dd or similar
2. Insert microSD card into router and apply power
3. Device boots into OpenWRT
4. (optional) dd sysupgrade image to /dev/mmcblk0 to install to eMMC
Signed-off-by: Tobias Schramm <tobias@t-sys.eu>
Upstream a patch adding support for cpufreq on AP807-based SoC like the
CN913x was submitted. Include it in patches to ensure best performance
under load and lowest power consumption in idle.
Signed-off-by: Tobias Schramm <tobias@t-sys.eu>
ELECOM WAB-I1750-PS is a 2.4/5 GHz band 11ac (Wi-Fi 5) access point,
based on QCA9558.
Specification:
- SoC : Qualcomm Atheros QCA9558
- RAM : DDR2 128 MiB (2x Winbond W9751G6KB251)
- Flash : SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
- WLAN : 2.4/5 GHz 3T3R
- 2.4 GHz : Qualcomm Atheros QCA9558 (SoC)
- 5 GHz : Qualcomm Atheros QCA9880
- Ethernet : 2x 10/100/1000 Mbps
- phy ("PD") : Atheros AR8035
- phy ("PSE") : Atheros AR8033
- LEDs/keys (GPIO) : 3x/3x
- UART : 2x RJ-45 port
- "SERVICE" : TTL (3.3V)
- port : ttyS0
- assignment : 1:3.3V, 2:GND, 3:TX, 4:RX
- settings : 115200n8
- note : no compatibility with "Cisco console cable"
- "SERIAL" : RS232C (+-12V)
- port : ?
- assignment : 1:NC , 2:NC , 3:TXD, 4:GND,
5:GND, 6:RXD, 7:NC , 8:NC
- settings : 115200n8
- note : compatible with "Cisco console cable"
- Buzzer : 1x GPIO-controlled
- USB : 1x USB 2.0 Type-A
- Power : DC jack or PoE
- DC jack : 12 VDC, 1.04 A (device only, rating)
- PoE : 802.3af/at, 48 VDC, 0.26 A (device only, rating)
- note : supports 802.3af supply on PSE (downstream) port
when powered by DC adapter or 802.3at PoE
Flash instruction using factory.bin image:
1. Boot WAB-I1750-PS without no upstream connection (or PoE connection
without DHCP)
2. Access to the WebUI ("http://192.168.3.1") on the device and open
firmware update page
("ツールボックス" -> "ファームウェア更新")
3. Select the OpenWrt factory.bin image and click update
("アップデート") button
4. Wait ~120 seconds to complete flashing
Revert to OEM firmware:
1. Download the latest OEM firmware
2. Remove 128 bytes(0x80) header from firmware image
3. Decode by xor with a pattern "8844a2d168b45a2d" (hex val)
4. Upload the decoded firmware to the device
5. Flash to "firmware" partition by mtd command
6. Reboot
Notes:
- To use the "SERVICE" port, the connection of 3.3V line is also
required to enable console output.
The uart line of "SERVICE" is branched out from the internal pin
header with 74HC126D and 3.3V line is connected to OE pin on it.
- "SERIAL" port is provided by HS UART on QCA9558 SoC that has
compatibility with qca,ar9330-uart, but QCA955x SoC's is not supported
on Linux Kernel and OpenWrt.
- To supply 802.3af PoE on "PSE" port when powered by DC adapter, 12 VDC
3.5 A adapter is recommended. (official: WAB-EX-ADP1)
MAC addresses:
Ethernet (PD, PSE): 00:90:FE:xx:xx:0A (Config, ethaddr (text))
2.4GHz : 00:90:FE:xx:xx:0A (Config, ethaddr (text))
5GHz : 00:90:FE:xx:xx:0B
[original work]
Signed-off-by: Yanase Yuki <dev@zpc.st>
[update for NVMEM and others]
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
ELECOM WAB-S1167-PS is a 2.4/5 GHz band 11ac (Wi-Fi 5) access point,
based on QCA9557.
Specification:
- SoC : Qualcomm Atheros QCA9557
- RAM : DDR2 128 MiB (2x Winbond W9751G6KB251)
- Flash : SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm Atheros QCA9557 (SoC)
- 5 GHz : Qualcomm Atheros QCA9882
- Ethernet : 2x 10/100/1000 Mbps
- phy ("PD") : Atheros AR8035
- phy ("PSE") : Atheros AR8033
- LEDs/keys (GPIO) : 3x/3x
- UART : 1x RJ-45 port
- "SERVICE" : TTL (3.3V)
- port : ttyS0
- assignment : 1:3.3V, 2:GND, 3:TX, 4:RX
- settings : 115200n8
- note : no compatibility with "Cisco console cable"
- Buzzer : 1x GPIO-controlled
- USB : 1x USB 2.0 Type-A
- Power : DC jack or PoE
- DC jack : 12 VDC, 1 A (device only, rating)
- PoE : 802.3af/at, 48 VDC, 0.25 A (device only, rating)
- note : supports 802.3af supply on PSE (downstream) port
when powered by DC adapter or 802.3at PoE
Flash instruction using factory.bin image:
1. Boot WAB-S1167-PS without no upstream connection (or PoE connection
without DHCP)
2. Access to the WebUI ("http://192.168.3.1") on the device and open
firmware update page
("ツールボックス" -> "ファームウェア更新")
3. Select the OpenWrt factory.bin image and click update
("アップデート") button
4. Wait ~120 seconds to complete flashing
Revert to OEM firmware:
1. Download the latest OEM firmware
2. Remove 128 bytes(0x80) header from firmware image
3. Decode by xor with a pattern "8844a2d168b45a2d" (hex val)
4. Upload the decoded firmware to the device
5. Flash to "firmware" partition by mtd command
6. Reboot
Notes:
- To use the "SERVICE" port, the connection of 3.3V line is also
required to enable console output.
The uart line of "SERVICE" is branched out from the internal pin
header with 74HC126D and 3.3V line is connected to OE pin on it.
- The same PCB is used with WAB-S600-PS.
- To supply 802.3af PoE on "PSE" port when powered by DC adapter, 12 VDC
3.5 A adapter is recommended. (official: WAB-EX-ADP1)
MAC addresses:
Ethernet (PD, PSE): 00:90:FE:xx:xx:04 (Config, ethaddr (text))
2.4GHz : 00:90:FE:xx:xx:04 (Config, ethaddr (text))
5GHz : 00:90:FE:xx:xx:05
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
ELECOM WAB-S600-PS is a 2.4/5 GHz band 11n (Wi-Fi 4) access point, based
on QCA9557.
This device also supports 11ac (Wi-Fi 5) with the another official
firmware.
Specification:
- SoC : Qualcomm Atheros QCA9557
- RAM : DDR2 128 MiB (2x Winbond W9751G6KB251)
- Flash : SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm Atheros QCA9557 (SoC)
- 5 GHz : Qualcomm Atheros QCA9882
- Ethernet : 2x 10/100/1000 Mbps
- phy ("PD") : Atheros AR8035
- phy ("PSE") : Atheros AR8033
- LEDs/keys (GPIO) : 3x/3x
- UART : 1x RJ-45 port
- "SERVICE" : TTL (3.3V)
- port : ttyS0
- assignment : 1:3.3V, 2:GND, 3:TX, 4:RX
- settings : 115200n8
- note : no compatibility with "Cisco console cable"
- Buzzer : 1x GPIO-controlled
- USB : 1x USB 2.0 Type-A
- Power : DC jack or PoE
- DC jack : 12 VDC, 1 A (device only, rating)
- PoE : 802.3af/at, 48 VDC, 0.25 A (device only, rating)
- note : supports 802.3af supply on PSE (downstream) port
when powered by DC adapter or 802.3at PoE
Flash instruction using factory.bin image:
1. Boot WAB-S600-PS without no upstream connection (or PoE connection
without DHCP)
2. Access to the WebUI ("http://192.168.3.1") on the device and open
firmware update page
("ツールボックス" -> "ファームウェア更新")
3. Select the OpenWrt factory.bin image and click update
("アップデート") button
4. Wait ~120 seconds to complete flashing
Revert to OEM firmware:
1. Download the latest OEM firmware
2. Remove 128 bytes(0x80) header from firmware image
3. Decode by xor with a pattern "8844a2d168b45a2d" (hex val)
4. Upload the decoded firmware to the device
5. Flash to "firmware" partition by mtd command
6. Reboot
Notes:
- To use the "SERVICE" port, the connection of 3.3V line is also
required to enable console output.
The uart line of "SERVICE" is branched out from the internal pin
header with 74HC126D and 3.3V line is connected to OE pin on it.
- The same PCB is used with WAB-S1167-PS.
- To supply 802.3af PoE on "PSE" port when powered by DC adapter, 12 VDC
3.5 A adapter is recommended. (official: WAB-EX-ADP1)
MAC addresses:
Ethernet (PD, PSE): BC:5C:4C:xx:xx:7C (Config, ethaddr (text))
2.4GHz : BC:5C:4C:xx:xx:7C (Config, ethaddr (text))
5GHz : BC:5C:4C:xx:xx:7D
[original work of common dtsi part for WAB-I1750-PS]
Signed-off-by: Yanase Yuki <dev@zpc.st>
[adding support for WAB-S600-PS]
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
The original commit had an invalid setting of the
led status for this device.
There is no gpio pin connected to that led so lets
remove these from the u7621-01 dtsi file.
Signed-off-by: David Bentham <db260179@gmail.com>
Update the default network configuration for Gateworks Newport boards
such that the left-most front-panel NIC is WAN and any additional are in
LAN bridge:
- gw610x/gw6903; single NIC: eth0
- gw620x/gw630x; two NIC's from left to right are: eth1 eth0
- gw640x; multiple NIC's from left to right: eth4 eth0 eth1 eth2 eth3
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
it is possible to boot and run OpenWrt from an image on an USB-Stick
on the MyBook Live DUO. (No, the MyBook Live Single does NOT have an
USB-Port and attempts at enabling it sadly all failed... so far).
To do that:
First, prepare a USB-Stick by writing the raw and uncompressed OpenWRT
factory image for the device onto the stick (i.e.
# gunzip -c openwrt-*wd_mybooklive*-factory.img.gz > /dev/sd$XX).
Then enter the u-boot via an attached TTL/CMOS 3.3V cable adapter and
give the following commands a try in the:
usb start; sata init
ext2load usb 0:1 ${fdt_addr_r} /boot/apollo3g.dtb
ext2load usb 0:1 ${kernel_addr_r} /boot/uImage
setenv bootargs 'root=/dev/sdc2 rw rootfstype=squashfs,ext4 rootdelay=5'
run addtty; bootm ${kernel_addr_r} - ${fdt_addr_r}
Notes:
- booting from USB-Sticks takes a long time! Be prepared to wait a few
minutes. (~3 minutes for 4 MiB /boot/uImage file on a USB 2.0 Stick)
- the bootargs part 'root=/dev/sdX2' depends on how many HDDs/SSDs are
slotted in. (if none: then use sda, if one: sdb. if two: sdc)
- rootdelay is important as the storage on the USB-Sticks do not show
up fast enough. 5 seconds might be excessive though.
- it's possible to concat these commands together in one line and
write it into u-boot's "bootcmd" environment variable and save the
environment to make the device to always boot from USB from then on.
if you have accidentally overridden the 'bootcmd' and want to return
to 'spec' enter the following commands :
setenv bootcmd 'run boot_sata_script_ap2nc'
saveenv
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Note about the MyBook Live.
The MyBook Live didn't have the encompassing fixed-partitions.
This is needed for the u-boot,env compatible to be read as otherwise
the kernel assumes this is a legacy NOR/NAND node and this binding
is unsupported.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Enable DEBUG_BUGVERBOSE by default on qualcommax as without it once BUG()
is called we will not get any output other than
"------------[ cut here ]------------"
which is not usefull at all, so since we dont have kernel size constraints
lets enable it by default.
Signed-off-by: Robert Marko <robimarko@gmail.com>