All of lore.kernel.org
 help / color / mirror / Atom feed
From: Macpaul Lin <macpaul@andestech.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v11 6/9] nds32: standalone support
Date: Thu,  1 Sep 2011 13:52:47 +0800	[thread overview]
Message-ID: <1314856371-9857-6-git-send-email-macpaul@andestech.com> (raw)
In-Reply-To: <1304342712-17120-10-git-send-email-macpaul@andestech.com>

Add standalone program related support for nds32 architecture.

Signed-off-by: Macpaul Lin <macpaul@andestech.com>
---
Changes for v1-v6:
  - code clean up.
Changes for v7-v11:
  - No change.

 examples/standalone/nds32.lds     |   64 +++++++++++++++++++++++++++++++++++++
 examples/standalone/stubs.c       |   17 +++++++++-
 examples/standalone/x86-testapp.c |   12 +++++++
 3 files changed, 92 insertions(+), 1 deletions(-)
 create mode 100644 examples/standalone/nds32.lds

diff --git a/examples/standalone/nds32.lds b/examples/standalone/nds32.lds
new file mode 100644
index 0000000..c2ac107
--- /dev/null
+++ b/examples/standalone/nds32.lds
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2011 Andes Technology Corporation
+ * Shawn Lin, Andes Technology Corporation <nobuhiro@andestech.com>
+ * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+OUTPUT_FORMAT("elf32-nds32", "elf32-nds32", "elf32-nds32")
+OUTPUT_ARCH(nds32)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+
+	. = ALIGN(4);
+	.text :
+	{
+		*(.text)
+	}
+
+	. = ALIGN(4);
+	.data : { *(.data) }
+
+	. = ALIGN(4);
+	.data : { *(.data) }
+
+	. = ALIGN(4);
+
+	.got : {
+		__got_start = .;
+		*(.got)
+		__got_end = .;
+	}
+
+	. = ALIGN(4);
+	__bss_start = .;
+	.bss : { *(.bss) }
+	__bss_end = .;
+
+	. = ALIGN(4);
+	.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
+
+	_end = .;
+
+	. = 0x02000000;
+	.u_boot_ohci_data_st : { *(.u_boot_ohci_data_st) }
+}
diff --git a/examples/standalone/stubs.c b/examples/standalone/stubs.c
index 507d38c..11c7565 100644
--- a/examples/standalone/stubs.c
+++ b/examples/standalone/stubs.c
@@ -167,8 +167,23 @@ gd_t *global_data;
 "	jmp %%g1\n"					\
 "	nop\n"						\
 	: : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "g1" );
-
+#elif defined(CONFIG_NDS32)
+/*
+ * r16 holds the pointer to the global_data. gp is call clobbered.
+ * not support reduced register (16 GPR).
+ */
+#define EXPORT_FUNC(x) \
+	asm volatile (			\
+"	.globl " #x "\n"		\
+#x ":\n"				\
+"	lwi	$r16, [$gp + (%0)]\n"	\
+"	lwi	$r16, [$r16 + (%1)]\n"	\
+"	jr	$r16\n"			\
+	: : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "$r16");
 #else
+/*"	addi	$sp, $sp, -24\n"	\
+"	br	$r16\n"			\*/
+
 #error stubs definition missing for this architecture
 #endif
 
diff --git a/examples/standalone/x86-testapp.c b/examples/standalone/x86-testapp.c
index e8603d9..a4ac6f8 100644
--- a/examples/standalone/x86-testapp.c
+++ b/examples/standalone/x86-testapp.c
@@ -52,6 +52,16 @@ asm volatile (						\
 "	lw	$25, %1($25)\n"				\
 "	jr	$25\n"					\
 	: : "i"(offsetof(xxx_t, pfunc)), "i"(XF_ ## x * sizeof(void *)) : "t9");
+#elif defined(__nds32__)
+#define EXPORT_FUNC(x)					\
+asm volatile (						\
+"	.globl mon_" #x "\n"				\
+"mon_" #x ":\n"						\
+"	lwi	$r16, [$gp + (%0)]\n"			\
+"	lwi	$r16, [$r16 + (%1)]\n"			\
+"	jr	$r16\n"					\
+	: : "i"(offsetof(xxx_t, pfunc)), "i"(XF_ ## x * sizeof(void *)) : "$r16");
+
 #else
 #error [No stub code for this arch]
 #endif
@@ -72,6 +82,8 @@ int main(void)
 	register volatile xxx_t *pq asm("r8");
 #elif defined(__mips__)
 	register volatile xxx_t *pq asm("k0");
+#elif defined(__nds32__)
+	register volatile xxx_t *pq asm("$r16");
 #endif
 	char buf[32];
 
-- 
1.7.3.5

  parent reply	other threads:[~2011-09-01  5:52 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-07 12:45 [U-Boot] [PATCH v7 01/10] nds32: add header files support for nds32 Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 02/10] nds32: add NDS32 support into common header file Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 03/10] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 04/10] nds32/ag101: dev offset header of SoC ag101 Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 05/10] nds32/ag101: lowlevel_init.S of ag101 Macpaul Lin
2011-04-07 13:01   ` Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 06/10] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 07/10] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 08/10] nds32: standalone support Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 09/10] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-04-07 12:45 ` [U-Boot] [PATCH v7 10/10] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-04-07 14:55 ` [U-Boot] [PATCH v7 01/10] nds32: add header files support for nds32 Wolfgang Denk
     [not found]   ` <BANLkTimhCuOcvMmFrSJGHxYRHyKFXJTc9g@mail.gmail.com>
2011-04-07 15:32     ` Macpaul Lin
2011-04-07 17:00     ` Wolfgang Denk
2011-04-08  7:58       ` Macpaul Lin
2011-04-11  2:05         ` Macpaul Lin
2011-04-29 23:09         ` Wolfgang Denk
2011-04-30  4:09           ` Chih-Min Chao
2011-05-02  9:27           ` Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 " Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 02/10] nds32: add NDS32 support into common header file Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 03/10] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 04/10] nds32/ag101: dev offset header of SoC ag101 Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 05/10] nds32/ag101: lowlevel_init.S of ag101 Macpaul Lin
2011-05-02 15:27   ` Wolfgang Denk
2011-05-02 15:37     ` Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 06/10] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 07/10] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 08/10] nds32: standalone support Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 09/10] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-05-02 13:25 ` [U-Boot] [PATCH v9 10/10] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-05-02 15:32   ` Wolfgang Denk
2011-08-31 10:25   ` [U-Boot] [PATCH v10 1/8] nds32: add header files support for nds32 Macpaul Lin
2011-08-31 14:52     ` Mike Frysinger
2011-08-31 14:53     ` Mike Frysinger
2011-08-31 10:25   ` [U-Boot] [PATCH v10 2/8] nds32: add NDS32 support into common header file Macpaul Lin
2011-08-31 10:25   ` [U-Boot] [PATCH v10 3/8] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-08-31 14:47     ` Mike Frysinger
2011-08-31 10:25   ` [U-Boot] [PATCH v10 4/8] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-08-31 10:25   ` [U-Boot] [PATCH v10 5/8] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-08-31 10:25   ` [U-Boot] [PATCH v10 6/8] nds32: standalone support Macpaul Lin
2011-08-31 10:25   ` [U-Boot] [PATCH v10 7/8] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-08-31 10:26   ` [U-Boot] [PATCH v10 8/8] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-09-01  5:52   ` [U-Boot] [PATCH v11 1/9] nds32: add header files support for nds32 Macpaul Lin
2011-09-01 14:16     ` Mike Frysinger
2011-09-01  5:52   ` [U-Boot] [PATCH v11 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-09-01  5:52   ` [U-Boot] [PATCH v11 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-09-01 14:18     ` Mike Frysinger
2011-09-06  3:50       ` 馬克泡
2011-09-01 14:21     ` Mike Frysinger
2011-09-01  5:52   ` [U-Boot] [PATCH v11 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-09-01  5:52   ` [U-Boot] [PATCH v11 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-09-01 14:28     ` Mike Frysinger
2011-09-06  6:41       ` 馬克泡
2011-09-06 21:15         ` Mike Frysinger
2011-09-07  2:27         ` [U-Boot] [PATCH v12 1/9] nds32: add header files support for nds32 Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-09-09  1:10           ` Mike Frysinger
2011-09-09  2:22             ` 馬克泡
2011-09-20  8:48             ` 馬克泡
2011-09-21  2:20           ` [U-Boot] [PATCH v13 1/9] nds32: add header files support for nds32 Macpaul Lin
2011-09-21  3:03             ` 馬克泡
2011-09-21  3:10             ` [U-Boot] [PATCH v14 " Macpaul Lin
2011-10-06 21:27               ` Wolfgang Denk
2011-09-21  3:10             ` [U-Boot] [PATCH v14 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-09-21  3:10             ` [U-Boot] [PATCH v14 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-10-06 21:26               ` Wolfgang Denk
2011-09-21  3:10             ` [U-Boot] [PATCH v14 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-10-06 21:26               ` Wolfgang Denk
2011-09-21  3:10             ` [U-Boot] [PATCH v14 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-10-06 21:25               ` Wolfgang Denk
2011-09-21  3:10             ` [U-Boot] [PATCH v14 6/9] nds32: standalone support Macpaul Lin
2011-10-06 21:25               ` Wolfgang Denk
2011-09-21  3:10             ` [U-Boot] [PATCH v14 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-09-21  3:10             ` [U-Boot] [PATCH v14 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-09-21  3:10             ` [U-Boot] [PATCH v14 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 6/9] nds32: standalone support Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-09-21  2:20           ` [U-Boot] [PATCH v13 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-10-06 10:25           ` [U-Boot] [PATCH v15 1/9] nds32: add header files support for nds32 Macpaul Lin
2011-10-06 20:59             ` Wolfgang Denk
2011-10-07  1:29               ` 馬克泡
2011-10-07  6:24                 ` Wolfgang Denk
2011-10-11  5:58                   ` 馬克泡
2011-10-11 12:53                     ` Wolfgang Denk
2011-10-11 14:06                       ` 馬克泡
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 " Macpaul Lin
2011-10-18  8:36                         ` 馬克泡
2011-10-18 18:38                           ` Simon Glass
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 6/9] nds32: standalone support Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-10-12  8:33                       ` [U-Boot] [PATCH v16 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 1/9] nds32: add header files support for nds32 Macpaul Lin
2011-10-21 22:51                         ` Wolfgang Denk
2011-10-22  1:47                           ` 馬克泡
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-10-21 22:52                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-10-21 22:52                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-10-21 22:52                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-10-21 22:53                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 6/9] nds32: standalone support Macpaul Lin
2011-10-21 22:53                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-10-21 22:54                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-10-21 22:54                         ` Wolfgang Denk
2011-10-20  6:41                       ` [U-Boot] [PATCH v17 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-10-21 22:54                         ` Wolfgang Denk
2011-10-06 10:25           ` [U-Boot] [PATCH v15 2/9] nds32: add NDS32 support into common header file Macpaul Lin
2011-10-06 10:25           ` [U-Boot] [PATCH v15 3/9] nds32/core N1213: NDS32 N12 core family N1213 Macpaul Lin
2011-10-06 20:58             ` Wolfgang Denk
2011-10-06 10:25           ` [U-Boot] [PATCH v15 4/9] nds32/ag101: cpu and init funcs of SoC ag101 Macpaul Lin
2011-10-06 20:58             ` Wolfgang Denk
2011-10-06 10:25           ` [U-Boot] [PATCH v15 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-10-06 20:57             ` Wolfgang Denk
2011-10-06 10:25           ` [U-Boot] [PATCH v15 6/9] nds32: standalone support Macpaul Lin
2011-10-06 20:55             ` Wolfgang Denk
2011-10-06 10:25           ` [U-Boot] [PATCH v15 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-10-06 10:25           ` [U-Boot] [PATCH v15 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-10-06 10:25           ` [U-Boot] [PATCH v15 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 5/9] nds32/lib: add generic funcs in NDS32 lib Macpaul Lin
2011-09-09  1:12           ` Mike Frysinger
2011-09-07  2:27         ` [U-Boot] [PATCH v12 6/9] nds32: standalone support Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-09-07  2:27         ` [U-Boot] [PATCH v12 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-09-09  1:14           ` Mike Frysinger
2011-09-07  2:27         ` [U-Boot] [PATCH v12 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin
2011-09-01  5:52   ` Macpaul Lin [this message]
2011-09-01  5:52   ` [U-Boot] [PATCH v11 7/9] nds32: common bdinfo, bootm, image support Macpaul Lin
2011-09-01  5:52   ` [U-Boot] [PATCH v11 8/9] adp-ag101: add board adp-ag101 support Macpaul Lin
2011-09-01  5:52   ` [U-Boot] [PATCH v11 9/9] doc/README: documents and readme for NDS32 arch Macpaul Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1314856371-9857-6-git-send-email-macpaul@andestech.com \
    --to=macpaul@andestech.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.