All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC
@ 2011-05-13  1:29 Chris Packham
  2011-05-13  1:29 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
  2011-05-13  1:32 ` [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
  0 siblings, 2 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:29 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
---
 arch/arm/include/asm/arch-kirkwood/kirkwood.h |    2 +
 drivers/rtc/Makefile                          |    1 +
 drivers/rtc/kirkwood.c                        |   76 +++++++++++++++++++++++++
 3 files changed, 79 insertions(+), 0 deletions(-)
 create mode 100644 drivers/rtc/kirkwood.c

diff --git a/arch/arm/include/asm/arch-kirkwood/kirkwood.h b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
index 0104418..15922eb 100644
--- a/arch/arm/include/asm/arch-kirkwood/kirkwood.h
+++ b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
@@ -50,6 +50,8 @@
 #define KW_MPP_BASE			(KW_REGISTER(0x10000))
 #define KW_GPIO0_BASE			(KW_REGISTER(0x10100))
 #define KW_GPIO1_BASE			(KW_REGISTER(0x10140))
+#define KW_RTC_TIME			(KW_REGISTER(0x10300))
+#define KW_RTC_DATE			(KW_REGISTER(0x10304))
 #define KW_NANDF_BASE			(KW_REGISTER(0x10418))
 #define KW_SPI_BASE			(KW_REGISTER(0x10600))
 #define KW_CPU_WIN_BASE			(KW_REGISTER(0x20000))
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index e4be4a4..ec064d9 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -43,6 +43,7 @@ COBJS-$(CONFIG_RTC_DS174x) += ds174x.o
 COBJS-$(CONFIG_RTC_DS3231) += ds3231.o
 COBJS-$(CONFIG_RTC_FTRTC010) += ftrtc010.o
 COBJS-$(CONFIG_RTC_ISL1208) += isl1208.o
+COBJS-$(CONFIG_RTC_KIRKWOOD) += kirkwood.o
 COBJS-$(CONFIG_RTC_M41T11) += m41t11.o
 COBJS-$(CONFIG_RTC_M41T60) += m41t60.o
 COBJS-$(CONFIG_RTC_M41T62) += m41t62.o
diff --git a/drivers/rtc/kirkwood.c b/drivers/rtc/kirkwood.c
new file mode 100644
index 0000000..5c9bc81
--- /dev/null
+++ b/drivers/rtc/kirkwood.c
@@ -0,0 +1,76 @@
+/*
+ * Driver for the RTC in Marvell SoCs.
+ *
+ * Based on Linux Kernel driver.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <common.h>
+#include <command.h>
+#include <rtc.h>
+#include <bcd.h>
+#include <asm/arch/kirkwood.h>
+
+#if defined(CONFIG_CMD_DATE)
+
+#define RTC_TIME_REG_OFFS	0
+#define RTC_SECONDS_OFFS	0
+#define RTC_MINUTES_OFFS	8
+#define RTC_HOURS_OFFS		16
+#define RTC_WDAY_OFFS		24
+#define RTC_HOURS_12H_MODE		(1 << 22) /* 12 hours mode */
+
+#define RTC_DATE_REG_OFFS	4
+#define RTC_MDAY_OFFS		0
+#define RTC_MONTH_OFFS		8
+#define RTC_YEAR_OFFS		16
+#define KIRKWOOD_YEAR_BASE	2000
+
+int rtc_set(struct rtc_time *tmp)
+{
+	ulong	rtc_reg;
+
+	GregorianDay (tmp);
+
+	rtc_reg = (bin2bcd(tmp->tm_sec) << RTC_SECONDS_OFFS) |
+			(bin2bcd(tmp->tm_min) << RTC_MINUTES_OFFS) |
+			(bin2bcd(tmp->tm_hour) << RTC_HOURS_OFFS) |
+			(bin2bcd(tmp->tm_wday) << RTC_WDAY_OFFS);
+	writel(rtc_reg, KW_RTC_TIME);
+
+	rtc_reg = (bin2bcd(tmp->tm_mday) << RTC_MDAY_OFFS) |
+			(bin2bcd(tmp->tm_mon + 1) << RTC_MONTH_OFFS) |
+			(bin2bcd(tmp->tm_year - KIRKWOOD_YEAR_BASE) << RTC_YEAR_OFFS);
+	writel(rtc_reg, KW_RTC_DATE);
+
+	return 0;
+}
+
+int rtc_get(struct rtc_time *tmp)
+{
+	ulong	rtc_time, rtc_date;
+
+	rtc_time = readl(KW_RTC_TIME);
+	rtc_date = readl(KW_RTC_DATE);
+
+	tmp->tm_sec = bcd2bin(rtc_time & 0x7f);
+	tmp->tm_min = bcd2bin((rtc_time >> RTC_MINUTES_OFFS) & 0x7f);
+	tmp->tm_hour = bcd2bin((rtc_time >> RTC_HOURS_OFFS) & 0x3f); /* assume 24 hours mode */
+	tmp->tm_mday = bcd2bin(rtc_date & 0x3f);
+	tmp->tm_wday = bcd2bin((rtc_time >> RTC_WDAY_OFFS) & 0x7);
+	tmp->tm_mon = bcd2bin((rtc_date >> RTC_MONTH_OFFS) & 0x3f) - 1;
+	/* hw counts from year 2000, but tm_year is relative to 0 */
+	tmp->tm_year = bcd2bin((rtc_date >> RTC_YEAR_OFFS) & 0xff) + KIRKWOOD_YEAR_BASE;
+
+	return 0;
+}
+
+void rtc_reset(void)
+{
+	return;
+}
+
+#endif /* CONFIG_CMD_DATE */
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable
  2011-05-13  1:29 [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
@ 2011-05-13  1:29 ` Chris Packham
  2011-05-13  1:29   ` [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request Chris Packham
  2011-05-13  1:34   ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
  2011-05-13  1:32 ` [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
  1 sibling, 2 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:29 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

When we use the ntpserverip environment variable argv[1] may not be set.
Printing the error message using the NetNtpServerIP variable ensures the
correct output in both cases.

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
 common/cmd_net.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/common/cmd_net.c b/common/cmd_net.c
index 8c6f5c8..e0d7d23 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -324,7 +324,7 @@ int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	else NetTimeOffset = simple_strtol (toff, NULL, 10);
 
 	if (NetLoop(SNTP) < 0) {
-		printf("SNTP failed: host %s not responding\n", argv[1]);
+		printf("SNTP failed: host %pI4 not responding\n", &NetNtpServerIP);
 		return 1;
 	}
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request
  2011-05-13  1:29 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
@ 2011-05-13  1:29   ` Chris Packham
  2011-05-13  1:33     ` Chris Packham
  2011-05-16  2:24     ` [U-Boot] [PATCHv2] " Chris Packham
  2011-05-13  1:34   ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
  1 sibling, 2 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:29 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
 net/bootp.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/net/bootp.c b/net/bootp.c
index 4db63cb..53f37d0 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -228,6 +228,11 @@ static void BootpVendorFieldProcess (u8 * ext)
 			NetOurNISDomain[size] = 0;
 		}
 		break;
+#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
+	case 42:	/* NTP server IP */
+		NetCopyIP (&NetNtpServerIP, (IPaddr_t *) (ext + 2));
+		break;
+#endif
 		/* Application layer fields */
 	case 43:		/* Vendor specific info - Not yet supported	*/
 		/*
@@ -278,6 +283,9 @@ static void BootpVendorProcess (u8 * ext, int size)
 
 	if (NetBootFileSize)
 		debug("NetBootFileSize: %d\n", NetBootFileSize);
+
+	if (NetNtpServerIP)
+		debug("NetNtpServerIP : %pI4\n", &NetNtpServerIP);
 }
 /*
  *	Handle a BOOTP received packet.
@@ -538,6 +546,11 @@ static int BootpExtended (u8 * e)
 	*e++ = 32;
 	e   += 32;
 #endif
+#if defined(CONFIG_BOOTP_NTPSERVER)
+	*e++  = 42;
+	*e++ = 4;
+	e   += 4;
+#endif
 
 	*e++ = 255;		/* End of the list */
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC
  2011-05-13  1:29 [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
  2011-05-13  1:29 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
@ 2011-05-13  1:32 ` Chris Packham
  2011-05-17  4:25   ` [U-Boot] [PATCHv2] " Chris Packham
  1 sibling, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:32 UTC (permalink / raw)
  To: u-boot

On Fri, May 13, 2011 at 1:29 PM, Chris Packham <judge.packham@gmail.com> wrote:
> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
>
> Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Prafulla Wadaskar <prafulla@marvell.com>

Sorry for the spam. I was just trying (and failing) to get git to add the Cc.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request
  2011-05-13  1:29   ` [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request Chris Packham
@ 2011-05-13  1:33     ` Chris Packham
  2011-05-16  2:24     ` [U-Boot] [PATCHv2] " Chris Packham
  1 sibling, 0 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:33 UTC (permalink / raw)
  To: u-boot

On Fri, May 13, 2011 at 1:29 PM, Chris Packham <judge.packham@gmail.com> wrote:
> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
>
> Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Ben Warren <biggerbadderben@gmail.com>

Sorry for the spam. I was just trying (and failing) to get git to add the Cc.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable
  2011-05-13  1:29 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
  2011-05-13  1:29   ` [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request Chris Packham
@ 2011-05-13  1:34   ` Chris Packham
  2011-05-17  4:27     ` [U-Boot] [PATCHv2] " Chris Packham
  1 sibling, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:34 UTC (permalink / raw)
  To: u-boot

On Fri, May 13, 2011 at 1:29 PM, Chris Packham <judge.packham@gmail.com> wrote:
> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
>
> When we use the ntpserverip environment variable argv[1] may not be set.
> Printing the error message using the NetNtpServerIP variable ensures the
> correct output in both cases.
>
> Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Ben Warren <biggerbadderben@gmail.com>
> ---

Sorry for the spam. I was just trying (and failing) to get git to add the Cc.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] bootp: add ntpserver option to bootp request
  2011-05-13  1:29   ` [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request Chris Packham
  2011-05-13  1:33     ` Chris Packham
@ 2011-05-16  2:24     ` Chris Packham
  2011-05-16 11:57       ` Sergei Shtylyov
  1 sibling, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-16  2:24 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
Changes since v1:
- fixed compile error in BootpVendorProcess when CONFIG_CMD_SNTP is not
  defined

 net/bootp.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/net/bootp.c b/net/bootp.c
index 4db63cb..18c743e 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -228,6 +228,11 @@ static void BootpVendorFieldProcess (u8 * ext)
 			NetOurNISDomain[size] = 0;
 		}
 		break;
+#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
+	case 42:	/* NTP server IP */
+		NetCopyIP (&NetNtpServerIP, (IPaddr_t *) (ext + 2));
+		break;
+#endif
 		/* Application layer fields */
 	case 43:		/* Vendor specific info - Not yet supported	*/
 		/*
@@ -278,6 +283,11 @@ static void BootpVendorProcess (u8 * ext, int size)
 
 	if (NetBootFileSize)
 		debug("NetBootFileSize: %d\n", NetBootFileSize);
+
+#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
+	if (NetNtpServerIP)
+		debug("NetNtpServerIP : %pI4\n", &NetNtpServerIP);
+#endif
 }
 /*
  *	Handle a BOOTP received packet.
@@ -538,6 +548,11 @@ static int BootpExtended (u8 * e)
 	*e++ = 32;
 	e   += 32;
 #endif
+#if defined(CONFIG_BOOTP_NTPSERVER)
+	*e++  = 42;
+	*e++ = 4;
+	e   += 4;
+#endif
 
 	*e++ = 255;		/* End of the list */
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] bootp: add ntpserver option to bootp request
  2011-05-16  2:24     ` [U-Boot] [PATCHv2] " Chris Packham
@ 2011-05-16 11:57       ` Sergei Shtylyov
  2011-05-17  4:09         ` Chris Packham
  0 siblings, 1 reply; 15+ messages in thread
From: Sergei Shtylyov @ 2011-05-16 11:57 UTC (permalink / raw)
  To: u-boot

Hello.

On 16-05-2011 6:24, Chris Packham wrote:

> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

> Signed-off-by: Luuk Paulussen<luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham<chris.packham@alliedtelesis.co.nz>
> Cc: Ben Warren<biggerbadderben@gmail.com>
[...]

> diff --git a/net/bootp.c b/net/bootp.c
> index 4db63cb..18c743e 100644
> --- a/net/bootp.c
> +++ b/net/bootp.c
> @@ -228,6 +228,11 @@ static void BootpVendorFieldProcess (u8 * ext)
>   			NetOurNISDomain[size] = 0;
>   		}
>   		break;
> +#if defined(CONFIG_CMD_SNTP)&&  defined(CONFIG_BOOTP_NTPSERVER)
> +	case 42:	/* NTP server IP */
> +		NetCopyIP (&NetNtpServerIP, (IPaddr_t *) (ext + 2));

    There should be no space between function name and (. You're now supposed 
to run your patch thru scripts/checkpatch.pl (from Linux source tree).

> +		break;
> +#endif
>   		/* Application layer fields */
>   	case 43:		/* Vendor specific info - Not yet supported	*/
>   		/*
> @@ -538,6 +548,11 @@ static int BootpExtended (u8 * e)
>   	*e++ = 32;
>   	e   += 32;
>   #endif
> +#if defined(CONFIG_BOOTP_NTPSERVER)
> +	*e++  = 42;

    Too many spaces...

> +	*e++ = 4;
> +	e   += 4;
> +#endif

WBR, Sergei

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] bootp: add ntpserver option to bootp request
  2011-05-16 11:57       ` Sergei Shtylyov
@ 2011-05-17  4:09         ` Chris Packham
  2011-05-17  4:29           ` [U-Boot] [PATCHv3] " Chris Packham
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-17  4:09 UTC (permalink / raw)
  To: u-boot

Hi Sergei,

On Mon, May 16, 2011 at 11:57 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> On 16-05-2011 6:24, Chris Packham wrote:
>
>> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
>
>> Signed-off-by: Luuk Paulussen<luuk.paulussen@alliedtelesis.co.nz>
>> Acked-by: Chris Packham<chris.packham@alliedtelesis.co.nz>
>> Cc: Ben Warren<biggerbadderben@gmail.com>
>
> [...]
>
>> diff --git a/net/bootp.c b/net/bootp.c
>> index 4db63cb..18c743e 100644
>> --- a/net/bootp.c
>> +++ b/net/bootp.c
>> @@ -228,6 +228,11 @@ static void BootpVendorFieldProcess (u8 * ext)
>> ? ? ? ? ? ? ? ? ? ? ? ?NetOurNISDomain[size] = 0;
>> ? ? ? ? ? ? ? ?}
>> ? ? ? ? ? ? ? ?break;
>> +#if defined(CONFIG_CMD_SNTP)&& ?defined(CONFIG_BOOTP_NTPSERVER)
>> + ? ? ? case 42: ? ? ? ?/* NTP server IP */
>> + ? ? ? ? ? ? ? NetCopyIP (&NetNtpServerIP, (IPaddr_t *) (ext + 2));
>
> ? There should be no space between function name and (. You're now supposed
> to run your patch thru scripts/checkpatch.pl (from Linux source tree).

Will fix (and run through checkpatch.pl) in next version.

>> + ? ? ? ? ? ? ? break;
>> +#endif
>> ? ? ? ? ? ? ? ?/* Application layer fields */
>> ? ? ? ?case 43: ? ? ? ? ? ? ? ?/* Vendor specific info - Not yet supported
>> ? ? */
>> ? ? ? ? ? ? ? ?/*
>> @@ -538,6 +548,11 @@ static int BootpExtended (u8 * e)
>> ? ? ? ?*e++ = 32;
>> ? ? ? ?e ? += 32;
>> ?#endif
>> +#if defined(CONFIG_BOOTP_NTPSERVER)
>> + ? ? ? *e++ ?= 42;
>
> ? Too many spaces...

Ditto.

>> + ? ? ? *e++ = 4;
>> + ? ? ? e ? += 4;
>> +#endif
>
> WBR, Sergei
>

v3 coming shortly

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] rtc: add driver for internal RTC on kirkwood SoC
  2011-05-13  1:32 ` [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
@ 2011-05-17  4:25   ` Chris Packham
  0 siblings, 0 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-17  4:25 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
---
Changes since v1:
- run through checkpatch.pl and fix style issues (spaces before bracket and
  lines > 80 chars)

 arch/arm/include/asm/arch-kirkwood/kirkwood.h |    2 +
 drivers/rtc/Makefile                          |    1 +
 drivers/rtc/kirkwood.c                        |   79 +++++++++++++++++++++++++
 3 files changed, 82 insertions(+), 0 deletions(-)
 create mode 100644 drivers/rtc/kirkwood.c

diff --git a/arch/arm/include/asm/arch-kirkwood/kirkwood.h b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
index 0104418..15922eb 100644
--- a/arch/arm/include/asm/arch-kirkwood/kirkwood.h
+++ b/arch/arm/include/asm/arch-kirkwood/kirkwood.h
@@ -50,6 +50,8 @@
 #define KW_MPP_BASE			(KW_REGISTER(0x10000))
 #define KW_GPIO0_BASE			(KW_REGISTER(0x10100))
 #define KW_GPIO1_BASE			(KW_REGISTER(0x10140))
+#define KW_RTC_TIME			(KW_REGISTER(0x10300))
+#define KW_RTC_DATE			(KW_REGISTER(0x10304))
 #define KW_NANDF_BASE			(KW_REGISTER(0x10418))
 #define KW_SPI_BASE			(KW_REGISTER(0x10600))
 #define KW_CPU_WIN_BASE			(KW_REGISTER(0x20000))
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index e4be4a4..ec064d9 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -43,6 +43,7 @@ COBJS-$(CONFIG_RTC_DS174x) += ds174x.o
 COBJS-$(CONFIG_RTC_DS3231) += ds3231.o
 COBJS-$(CONFIG_RTC_FTRTC010) += ftrtc010.o
 COBJS-$(CONFIG_RTC_ISL1208) += isl1208.o
+COBJS-$(CONFIG_RTC_KIRKWOOD) += kirkwood.o
 COBJS-$(CONFIG_RTC_M41T11) += m41t11.o
 COBJS-$(CONFIG_RTC_M41T60) += m41t60.o
 COBJS-$(CONFIG_RTC_M41T62) += m41t62.o
diff --git a/drivers/rtc/kirkwood.c b/drivers/rtc/kirkwood.c
new file mode 100644
index 0000000..b08fd91
--- /dev/null
+++ b/drivers/rtc/kirkwood.c
@@ -0,0 +1,79 @@
+/*
+ * Driver for the RTC in Marvell SoCs.
+ *
+ * Based on Linux Kernel driver.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#include <common.h>
+#include <command.h>
+#include <rtc.h>
+#include <bcd.h>
+#include <asm/arch/kirkwood.h>
+
+#if defined(CONFIG_CMD_DATE)
+
+#define RTC_TIME_REG_OFFS	0
+#define RTC_SECONDS_OFFS	0
+#define RTC_MINUTES_OFFS	8
+#define RTC_HOURS_OFFS		16
+#define RTC_WDAY_OFFS		24
+#define RTC_HOURS_12H_MODE		(1 << 22) /* 12 hours mode */
+
+#define RTC_DATE_REG_OFFS	4
+#define RTC_MDAY_OFFS		0
+#define RTC_MONTH_OFFS		8
+#define RTC_YEAR_OFFS		16
+#define KIRKWOOD_YEAR_BASE	2000
+
+int rtc_set(struct rtc_time *tmp)
+{
+	ulong	rtc_reg;
+
+	GregorianDay(tmp);
+
+	rtc_reg = (bin2bcd(tmp->tm_sec) << RTC_SECONDS_OFFS) |
+			(bin2bcd(tmp->tm_min) << RTC_MINUTES_OFFS) |
+			(bin2bcd(tmp->tm_hour) << RTC_HOURS_OFFS) |
+			(bin2bcd(tmp->tm_wday) << RTC_WDAY_OFFS);
+	writel(rtc_reg, KW_RTC_TIME);
+
+	rtc_reg = (bin2bcd(tmp->tm_mday) << RTC_MDAY_OFFS) |
+			(bin2bcd(tmp->tm_mon + 1) << RTC_MONTH_OFFS) |
+			(bin2bcd(tmp->tm_year - KIRKWOOD_YEAR_BASE)
+				<< RTC_YEAR_OFFS);
+	writel(rtc_reg, KW_RTC_DATE);
+
+	return 0;
+}
+
+int rtc_get(struct rtc_time *tmp)
+{
+	ulong	rtc_time, rtc_date;
+
+	rtc_time = readl(KW_RTC_TIME);
+	rtc_date = readl(KW_RTC_DATE);
+
+	tmp->tm_sec = bcd2bin(rtc_time & 0x7f);
+	tmp->tm_min = bcd2bin((rtc_time >> RTC_MINUTES_OFFS) & 0x7f);
+	/* assume 24 hour mode */
+	tmp->tm_hour = bcd2bin((rtc_time >> RTC_HOURS_OFFS) & 0x3f);
+	tmp->tm_mday = bcd2bin(rtc_date & 0x3f);
+	tmp->tm_wday = bcd2bin((rtc_time >> RTC_WDAY_OFFS) & 0x7);
+	tmp->tm_mon = bcd2bin((rtc_date >> RTC_MONTH_OFFS) & 0x3f) - 1;
+	/* hw counts from year 2000, but tm_year is relative to 0 */
+	tmp->tm_year = bcd2bin((rtc_date >> RTC_YEAR_OFFS) & 0xff)
+		+ KIRKWOOD_YEAR_BASE;
+
+	return 0;
+}
+
+void rtc_reset(void)
+{
+	return;
+}
+
+#endif /* CONFIG_CMD_DATE */
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] sntp: avoid use of uninitialized variable
  2011-05-13  1:34   ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
@ 2011-05-17  4:27     ` Chris Packham
  2011-05-17  8:32       ` Detlev Zundel
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-17  4:27 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

When we use the ntpserverip environment variable argv[1] may not be set.
Printing the error message using the NetNtpServerIP variable ensures the
correct output in both cases.

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
Changes since v1:
- run through checkpatch.pl, fix line > 80 chars

 common/cmd_net.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/common/cmd_net.c b/common/cmd_net.c
index 8c6f5c8..fae3c7f 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -324,7 +324,8 @@ int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	else NetTimeOffset = simple_strtol (toff, NULL, 10);
 
 	if (NetLoop(SNTP) < 0) {
-		printf("SNTP failed: host %s not responding\n", argv[1]);
+		printf("SNTP failed: host %pI4 not responding\n",
+			&NetNtpServerIP);
 		return 1;
 	}
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv3] bootp: add ntpserver option to bootp request
  2011-05-17  4:09         ` Chris Packham
@ 2011-05-17  4:29           ` Chris Packham
  2011-07-27 21:20             ` Wolfgang Denk
  0 siblings, 1 reply; 15+ messages in thread
From: Chris Packham @ 2011-05-17  4:29 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
Changes since v1:
- fixed compile error in BootpVendorProcess when CONFIG_CMD_SNTP is not
  defined
Changes since v2:
- run though checkpatch.pl. Address comments from Sergei.

 net/bootp.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/net/bootp.c b/net/bootp.c
index 4db63cb..45eaab1 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -228,6 +228,11 @@ static void BootpVendorFieldProcess (u8 * ext)
 			NetOurNISDomain[size] = 0;
 		}
 		break;
+#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
+	case 42:	/* NTP server IP */
+		NetCopyIP(&NetNtpServerIP, (IPaddr_t *) (ext + 2));
+		break;
+#endif
 		/* Application layer fields */
 	case 43:		/* Vendor specific info - Not yet supported	*/
 		/*
@@ -278,6 +283,11 @@ static void BootpVendorProcess (u8 * ext, int size)
 
 	if (NetBootFileSize)
 		debug("NetBootFileSize: %d\n", NetBootFileSize);
+
+#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)
+	if (NetNtpServerIP)
+		debug("NetNtpServerIP : %pI4\n", &NetNtpServerIP);
+#endif
 }
 /*
  *	Handle a BOOTP received packet.
@@ -538,6 +548,11 @@ static int BootpExtended (u8 * e)
 	*e++ = 32;
 	e   += 32;
 #endif
+#if defined(CONFIG_BOOTP_NTPSERVER)
+	*e++ = 42;
+	*e++ = 4;
+	e   += 4;
+#endif
 
 	*e++ = 255;		/* End of the list */
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv2] sntp: avoid use of uninitialized variable
  2011-05-17  4:27     ` [U-Boot] [PATCHv2] " Chris Packham
@ 2011-05-17  8:32       ` Detlev Zundel
  0 siblings, 0 replies; 15+ messages in thread
From: Detlev Zundel @ 2011-05-17  8:32 UTC (permalink / raw)
  To: u-boot

Hi Chris,

> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
>
> When we use the ntpserverip environment variable argv[1] may not be set.
> Printing the error message using the NetNtpServerIP variable ensures the
> correct output in both cases.
>
> Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Ben Warren <biggerbadderben@gmail.com>
> ---
> Changes since v1:
> - run through checkpatch.pl, fix line > 80 chars
>
>  common/cmd_net.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/common/cmd_net.c b/common/cmd_net.c
> index 8c6f5c8..fae3c7f 100644
> --- a/common/cmd_net.c
> +++ b/common/cmd_net.c
> @@ -324,7 +324,8 @@ int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>  	else NetTimeOffset = simple_strtol (toff, NULL, 10);
>  
>  	if (NetLoop(SNTP) < 0) {
> -		printf("SNTP failed: host %s not responding\n", argv[1]);
> +		printf("SNTP failed: host %pI4 not responding\n",
> +			&NetNtpServerIP);
>  		return 1;
>  	}

Acked-by: Detlev Zundel <dzu@denx.de>

Cheers
  Detlev

-- 
Is this a private fight or can anyone join in?
                           -- Old Irish saying
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCHv3] bootp: add ntpserver option to bootp request
  2011-05-17  4:29           ` [U-Boot] [PATCHv3] " Chris Packham
@ 2011-07-27 21:20             ` Wolfgang Denk
  0 siblings, 0 replies; 15+ messages in thread
From: Wolfgang Denk @ 2011-07-27 21:20 UTC (permalink / raw)
  To: u-boot

Dear Chris Packham,

In message <1305606559-29993-1-git-send-email-judge.packham@gmail.com> you wrote:
> From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> 
> Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Cc: Ben Warren <biggerbadderben@gmail.com>
> ---
> Changes since v1:
> - fixed compile error in BootpVendorProcess when CONFIG_CMD_SNTP is not
>   defined
> Changes since v2:
> - run though checkpatch.pl. Address comments from Sergei.
> 
>  net/bootp.c |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If you want strict real-time behavior, run in the real  time  schedu-
ling class.  But there are no seatbelts or airbags;  main(){for(;;);}
can hard hang your system.                          -- Bart Smaalders

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable
  2011-05-13  1:27 [U-Boot] [PATCH 1/3] " Chris Packham
@ 2011-05-13  1:27 ` Chris Packham
  0 siblings, 0 replies; 15+ messages in thread
From: Chris Packham @ 2011-05-13  1:27 UTC (permalink / raw)
  To: u-boot

From: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>

When we use the ntpserverip environment variable argv[1] may not be set.
Printing the error message using the NetNtpServerIP variable ensures the
correct output in both cases.

Signed-off-by: Luuk Paulussen <luuk.paulussen@alliedtelesis.co.nz>
Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Ben Warren <biggerbadderben@gmail.com>
---
 common/cmd_net.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/common/cmd_net.c b/common/cmd_net.c
index 8c6f5c8..e0d7d23 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -324,7 +324,7 @@ int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	else NetTimeOffset = simple_strtol (toff, NULL, 10);
 
 	if (NetLoop(SNTP) < 0) {
-		printf("SNTP failed: host %s not responding\n", argv[1]);
+		printf("SNTP failed: host %pI4 not responding\n", &NetNtpServerIP);
 		return 1;
 	}
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-07-27 21:20 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-13  1:29 [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
2011-05-13  1:29 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
2011-05-13  1:29   ` [U-Boot] [PATCH 3/3] bootp: add ntpserver option to bootp request Chris Packham
2011-05-13  1:33     ` Chris Packham
2011-05-16  2:24     ` [U-Boot] [PATCHv2] " Chris Packham
2011-05-16 11:57       ` Sergei Shtylyov
2011-05-17  4:09         ` Chris Packham
2011-05-17  4:29           ` [U-Boot] [PATCHv3] " Chris Packham
2011-07-27 21:20             ` Wolfgang Denk
2011-05-13  1:34   ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham
2011-05-17  4:27     ` [U-Boot] [PATCHv2] " Chris Packham
2011-05-17  8:32       ` Detlev Zundel
2011-05-13  1:32 ` [U-Boot] [PATCH 1/3] rtc: add driver for internal RTC on kirkwood SoC Chris Packham
2011-05-17  4:25   ` [U-Boot] [PATCHv2] " Chris Packham
  -- strict thread matches above, loose matches on Subject: below --
2011-05-13  1:27 [U-Boot] [PATCH 1/3] " Chris Packham
2011-05-13  1:27 ` [U-Boot] [PATCH 2/3] sntp: avoid use of uninitialized variable Chris Packham

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.