1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-18 05:36:16 +02:00
Commit Graph

322 Commits

Author SHA1 Message Date
juhosg
c4723d07e6 ramips: add memory detection code for RT5350
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33571 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-27 10:18:15 +00:00
juhosg
4110f0d379 ramips: allow to use custom code for memory size detection
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33570 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-27 10:18:14 +00:00
blogic
e9a777ed10 [ramips] add ethernet support for rt5350
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33548 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-25 14:47:08 +00:00
blogic
90960d25b1 [ramips] make ramips ethernet use a register mapping table
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33547 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-25 14:46:58 +00:00
blogic
8d4ebc34f0 D-Link DAP-1350; Avoid bricking esw config
This is a patch to connect eth0.1 (lan) to the only
ethernet connector available.

D-Link DAP-1350 goes bricked with AA 12.09-beta.

This is because the current esw configuration for the
board connects eth0.2 (wan) to the *ONE and ONLY*
ethernet connector available, preventing initial access
to the board through 192.168.1.1 on eth0.1 after flashing,
effectively bricking the board.

There are things that should be done to make this board
really useful, but for AA 12.09, this one liner is
indispensable.

Signed of by Yoichi Shinoda <shinoda@jaist.ac.jp>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33411 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-15 09:28:28 +00:00
juhosg
de071d14f7 ramips/rt305x: add initial support for Rt5350 SoC
Somehow detecting the RAM size in common/setup.c doesn't
work here, it always detects 64M and then crashes on devices
with less RAM.
Probably using MEMC_REG_SDRAM_CFG1 to know the RAM size is how
it could be, for now I use the mem=32M kernel parameter to get
stuff working.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33381 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-12 19:03:12 +00:00
juhosg
dddb52eedf ramips: Add missing andmask to ramips_esw register read for recv_good value.
Add missing andmask to ramips_esw register read for recv_good value.

Without the mask, recv_bad leaks into the recv_good packet count.
Didn't notice the bug before since you don't usually get bad
packets, so I only saw it when I was playing with overlength packets
earlier...

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33322 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-05 20:08:43 +00:00
juhosg
07073dcb27 ramips: Use doubletagging to disable ramips_esw vlan by default, it seems more reliable.
Use doubletagging to disable ramips_esw vlan by default, it seems
more reliable.

Daniel Golle found an issue where sometimes (possibly only for
RT3352) the default vlan disable method (clearing en_vlan, untag,
doubletag and putting all ports into vlan 0) doesn't work and the
packets get sent out vlan-tagged with vlan 0.

Instead switch to using the doubletagging method (allow doubletagged
packets, put all ports into vlan 0 with untag enabled) by default.

Unless someone figures out a way to really globally disable vlan for
this switch, this seems like the best (most reliable) option.

I did some tests regarding maximum packet size and did not see any

difference between the two methods, both allow for slightly bigger packets
than the ramips_main.c ethernet driver (ping stops going through
above "ping -s 1472" (1514 bytes), on the switch packets are recv_good until
"ping -s 1490", or about 1532 bytes).

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33321 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-09-05 20:08:42 +00:00
juhosg
c4ce5d343d ramips: make built-in switch transparent for ALL0256N and ALL5002
This allows them to transparently communicate with an external VLAN switch.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33305 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:47 +00:00
juhosg
2a86045d51 ramips: Power down phy on disabled switch ports
Power down phy on disabled switch ports.

Haven't measured this myself yet, but according to this
http://www.8devices.com/community/viewtopic.php?f=6&t=156
it can save about 300mW of power.

[juhosg: fix checkpatch warning]

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33304 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:45 +00:00
juhosg
0464c077a4 ramips: Add support for 8devices Carambola dev board.
Add support for 8devices Carambola dev board.

The Carambola is a small RT3050-based development board with two
ethernet ports, on-board chip antenna, usb and plenty of accessible
gpio ports, sold by 8devices.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33303 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:43 +00:00
juhosg
4cf75bc115 ramips: Rename POC registers
Rename POC registers.

The current code uses POC1-POC3.

The datasheet uses:
POC1: Port Control 0
POC1: Port Control 1
POC2: Port Control 2

So the first POC1 is a typo that should have been POC0, rename the
registers to POC0-POC2 accordingly.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33302 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:41 +00:00
juhosg
1bac05a581 ramips: Minor ramips_esw.c cleanup
Stop handling VLAN setup in the kernel.
Removes the obsolete RT305X_ESW_VLAN_CONFIG_BYPASS option I added for
WL-351 and add some extra comments.
Also removes the en_vlan per-port flag that isn't very useful really, it now
is only controlled by the global enable_vlan flag.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33301 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:40 +00:00
juhosg
746f915308 ramips: Add swconfig support to ramips_esw.c
Add swconfig support to ramips_esw.c

This patch adds swconfig support for ramips_esw:

Tested on both D-LINK DIR-300 B1 and Sitecom WL-351 (external
rtl8366rb on internal port 5).
I've made sure that in the enable_vlan=0 case it behaves like a dumb
switch, so external switches should work fine with vlans and
verified this on the WL-351.

The current state shown by swconfig is always read directly from HW
registers, new settings only show after 'swconfig dev rt305x set apply'.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33299 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:36 +00:00
juhosg
d6de6b1e83 ramips: ramips_esw.c indentation cleanup
Minor indentation cleanup.

Prepare for the main swconfig patch by cleaning up indentation a bit.

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33298 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-29 10:37:35 +00:00
juhosg
6f559fde75 ramips: add board alias for the ALL0239-3G
Generate image for the ALL0239-3G which can be flashed through the
chipset-vendor SDK based firmware's web-interface and bootloader.

The bootloader seems to ignore uImage checksum errors, but does complain about
them once the 0xDEADC0DE was replaced by an actual JFFS2 page.

I'm working on implementing fixtrx for uImage in the mtd package to solve this.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33206 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-17 17:56:07 +00:00
juhosg
cf26194ba9 ramips: add support for D-Link DIR-615 H1
rt2x00 still needs some patching as the radio doesn't come to life.
Installation via webflash.

[juhosg: fix whitespace issues, remove rt305x_register_usb
from machine setup because the board has no USB port]

Signed-off-by: Mikko Hissa <mikko.hissa@uta.fi>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33205 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-17 17:56:05 +00:00
juhosg
e22f7daae5 ramips: rename rt3352 usb platform devices
In order to get OHCI/EHCI working on the Rt3352, the platform device must be
named so rt3883-?hci will recognize it.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33145 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-12 12:48:31 +00:00
juhosg
2c5c4009fb ramips: watchdog: use maximum possible timeout by default
As the userspace has no means to determine the maximum possible timeout, use
that as the default and let the userspace lower it when necessary.

As the result the usual OpenWrt install (with busybox's watchdog trying to set
the timeout to 60s on start) is using a 33s timeout on an RT3052 clocked at
384MHz instead of the current 20s default.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33144 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-12 12:48:28 +00:00
juhosg
0618ae4136 ramips: add D-Link DIR-620 A1 support
Full functionality runtime tested, installation via OEM web-interface requires
a follow-up patch.

Thanks go to Sergey Vasilyugin for his patch that pointed me at the missing
bits (including the antiparallel wps led).

Signed-off-by: Paul Fertser <fercerpav@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33142 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-12 12:48:24 +00:00
blogic
3d574b6ebb [ramips] DWC otg usb: compilation fixes and trivial bugfix in slave mode
Signed-of-by: Nikolai Zhubr <n-a-zhubr@yandex.ru>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32823 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-24 20:38:55 +00:00
blogic
1866d6283c [ramips] D-Link DAP-1350 initial support
The initial support for the D-Link DAP-1350.
USB related functionality is not tested.

Signed-off-by: Yoichi Shinoda <shinoda@jaist.ac.jp>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32821 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-24 20:38:43 +00:00
blogic
3b24a99dd1 [ramips] enable OHCI/EHCI glue on Rt305x, so it is available for Rt3352F.
Hope that this works, didn't have a chance to actually test it...

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32815 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-24 20:38:08 +00:00
blogic
03019d7d12 [ramips] add support for Allnet ALL5002 to kernel
support ALL5002 in ramips/rt305x branch of the kernel.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32813 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-24 20:37:56 +00:00
blogic
ea6e386f6f [ramips] uart_clk on Rt3352F is always 40MHz
Currently, sys_clk/10 is used which is just wrong.
cpu_clk/10 would work for systems with 400MHz CPU clock.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32812 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-24 20:37:50 +00:00
juhosg
533fe2fa9f ramips: rt305x: add support for Edimax 3G-6200N
Support for Edimax 3G-6200N router with USB.

Signed-off-by: Lukasz Golebiowski <lgolebio@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32682 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-12 13:29:46 +00:00
juhosg
71c704387b ramips: rt305x: add support for the Petatel PSR-680W Wireless CDMA Router
This patch adds support for the Korean made Petatel PSR-680W Wireless CDMA Router.
The platform is based on Ralink RT3052.
http://wiki.openwrt.org/toh/petatel/psr-680w

Signed-off-by: Dmitry Shmygov <shmygov at rambler.ru>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32450 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-06-19 09:52:15 +00:00
juhosg
436c9f6d34 ramips: WAN LED for D-Link DIR-300-B1
Add led devices for D-Link DIR-300-B1 WAN LED.

Note that the GPIO state is also ANDed with the esw switch port 4
LED state, which is why I've set the amber LED to default-on.

Closes: https://dev.openwrt.org/ticket/11326

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

[ juhosg:
- fix comment style in mach-dir-300-revb.c,
- remove the PPP specific LED setup, not everyone uses a PPP connection
  on the WAN interface]

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31989 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-29 16:39:03 +00:00
juhosg
75c71fcaa0 ramips: rt3883: add device registration code for the SPI controller
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31922 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:10:00 +00:00
juhosg
1e3e199faa ramips: rt3883: fix GPIO reservation for the SPI pins
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31920 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:56 +00:00
juhosg
0c9cb51fbb ramips: rt305x: remove superfluous controller_data assignment
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31919 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:52 +00:00
juhosg
4a1bbe457a ramips: Add byte queue limits support to net/ethernet/ramips_main.c
Add byte queue limits support to net/ethernet/ramips_main.c

"Byte queue limits are a mechanism to limit the size of the transmit
hardware queue on a NIC by number of bytes. The goal of these byte
limits is too reduce latency (HOL blocking) caused by excessive
queuing in hardware (aka buffer bloat) without sacrificing
throughput."

Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31844 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-23 21:05:23 +00:00
juhosg
439a47e380 ramips: W306R V2.0 - GPIO and Network fixes
Fixed: GPIO typos and confirmed GPIO_BUTTON_RESET
Fixed: Lan & Wan reversed: swaped "eth0.2" with "eth0.1" by
       removing a line(default is correct), and reversed the
       Lan/wan layout LLLLW to WLLLL.

Added: image/Makefile now builds -factory.bin files. I am
       unsure of the accepted way to change the makefile but
       the name of the image needs to be 'linkn Kernel Image'
       in order to be accepted by the OEM firmware.

Known issue: eth0 (internal switch i think has mac address:
       00:11:22:33:44:55  but i think it should be same as
       the lan).
Known issue: Pressing the reset button has no noticable effect,
       i would expect the router to boot failsafe if being
       pressed on boot, reboot if short press and reset all
       to default if long press.

[juhosg: remove mtdlayout_W306R and use mtdlayout_4M instead]

Signed-off-by: David Pearce <david_18051985@hotmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31557 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-02 19:17:59 +00:00
juhosg
4e19be80f8 ramips: rt305x: add support for the UR-336UN board
Patch-by: Lebedev Dmitry <lebedev@trendnet.ru>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31451 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-23 16:56:06 +00:00
juhosg
06add57343 ramips: rt305x: add support for the Asus WL-330N3G board
This patch adds support for the ASUS WL-330N3G

Comparing to the WL-330N, It have 32MB ram, usb support and a bicolor led.

The bi-color led is driven by 2 gpio.
I don't know how to handle this, so I simply made 2 leds : one red, one blue.
But the red light takes precedence over the blue one according to the chart below.

r = led is red
b = led is blue
0 = led is off

xy= x->r for red, b for blue led, y->value of brightness in /sys/class/leds/x/brughtness

initial state	action	 led	gpio state

r0	b0	r0->r1	 r  	r0	b0
r0	b0	b0->b1   b	r0	b1

r1	b0	r1->r0	 0	r0	b0
r1	b0	b0->b1	 r	r1	*b1*

r1	b1	r1->r0   b	r0	b1
r1	b1	b1->b0   r	r1	b0

r0	b1	r0->r1   r	r1	*b1*
r0	b1	b1->b0   0	r0	r0

Signed-off-by: Frédéric Leroy <fredo@starox.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31450 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-23 16:56:05 +00:00
juhosg
e958af1110 ramips: rt305x: add OHCI/EHCI registration code for RT3352
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31402 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-21 12:30:48 +00:00
juhosg
3ff5d8da9a ramips: rt305x: fix CPU clock detection on RT3352
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31401 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-21 12:30:47 +00:00
juhosg
feaef768b3 ramips: rt305x: use different memory size setup for RT3352
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31400 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-21 12:30:45 +00:00
juhosg
266880e202 ramips: rt305x: add initial support for Tenda W306R V2.0
More device info at: http://wiki.openwrt.org/toh/tenda/w306r

Signed-off-by: David Pearce <David_18051985@hotmail.com.au>
[juhosg: fix checkpatch errors, remove kmod-phy and luci-ssl packages
from the profile, change broken GPIO number]

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31396 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-21 12:30:40 +00:00
jow
8600b97ee6 ramips: add support for the ARC FreeStation5 board, also fix WCR-150GN network setup while we're at it - thanks Pau Escrich <p4u@dabax.net> for the implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31144 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-29 16:03:04 +00:00
juhosg
7c8edac25f ramips: rt305x: build image for the DIR-615 rev D boards
Patch from #10105.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31101 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-27 19:29:59 +00:00
juhosg
467d4cf199 ramips: rt305x: add add support for the Asus WL-330N board
[juhosg: reorder several lines in order to keep things sorted
alphabetically]

Signed-off-by: Frédéric Leroy <fredo@starox.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31100 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-27 19:29:57 +00:00
juhosg
c74f622197 ramips: add RT3350 detection
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30900 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-12 16:12:13 +00:00
juhosg
6eda38a432 ramips: rt305x: rewrite SoC detection
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30890 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 19:05:59 +00:00
juhosg
2886c1d472 ramips: rt305x: rename SYSTEM_CONFIG_* defines to RT305X_SYSCFG_*
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30889 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 19:05:57 +00:00
juhosg
5a2708d192 ramips: replace RALINK_SOC_* macros with global variables
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30888 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 19:05:56 +00:00
juhosg
9fb8ca891c ramips: introduce ramips_soc_prom_init and move SoC detection into that
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30887 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 19:05:53 +00:00
juhosg
cd601754a4 ramips: allow to use DSP ASE on RT3xxx
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30879 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 16:39:26 +00:00
juhosg
a88314062b ramips: add support for unbranded XDX-RN502J board
This patch adds support for routers using a PCB marked XDX-RN502J
V2.0, such as some unbranded routers like this:

http://www.mediafire.com/?8acv87h6snn9fj6
http://www.mediafire.com/?do7xonw7scor4kn
http://www.mediafire.com/?1ad49zvx3e7jyix
http://www.mediafire.com/?i46cqiq66maa197

http://www.aliexpress.com/product-fm/516397994-Free-Shipping-300M-3G-WAN-Wireless-N-WiFi-USB-AP-Router-2-Antennas-wholesalers.html

some reports also state the Aceex 22Y uses the same board.

more information can be found in the following openwrt forum post
https://forum.openwrt.org/viewtopic.php?id=34878

[juhosg: fix checkpatch warnings, use the GENERIC_4M template]

Signed-off-by: bruno schwander <bruno@tinkerbox.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30809 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-04 16:09:13 +00:00
juhosg
6e1646817e ramips: board support for Asus RT-N10+
[juhosg: fix indentation in platform scripts, and remove debug
messages from 06_set_iface_mac]

Signed-off-by: Patrick van Staveren <trick@vanstaveren.us>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30808 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-04 16:09:11 +00:00