All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Álvaro Fernández Rojas" <noltari@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v6 08/14] MIPS: add initial infrastructure for Broadcom MIPS SoCs
Date: Tue, 25 Apr 2017 00:39:20 +0200	[thread overview]
Message-ID: <1493073566-11982-9-git-send-email-noltari@gmail.com> (raw)
In-Reply-To: <1493073566-11982-1-git-send-email-noltari@gmail.com>

CFE checks CPU Thread in a different way (using register $22):
mfc0	t1, C0_BCM_CONFIG, 3 # $22
li	t2, CP0_CMT_TPID # (1 << 31)
and	t1, t2
bnez	t1, 2f	# if we are running on thread 1, skip init
nop

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
 v6: Introduce changes suggested by Daniel Schwierzeck:
  - Improve BMIPS_BOOT_RAM description.
  - Remove CONFIG_BAUDRATE (selected in each board defconfig).
  - Remove CONFIG_REMAKE_ELF (selected in each board include).
 v5: No changes.
 v4: No changes.
 v3: Select CONFIG_REMAKE_ELF.
 v2: Introduce changes suggested by Daniel Schwierzeck:
  - Split BMIPS support patches.
  - Replace initdram with dram_init.
  - Merge with "fix first CPU check" patch.

 arch/mips/Kconfig              | 10 ++++++++++
 arch/mips/Makefile             |  1 +
 arch/mips/cpu/start.S          |  5 +++++
 arch/mips/mach-bmips/Kconfig   | 23 +++++++++++++++++++++++
 arch/mips/mach-bmips/Makefile  |  5 +++++
 arch/mips/mach-bmips/dram.c    | 37 +++++++++++++++++++++++++++++++++++++
 include/configs/bmips_common.h | 23 +++++++++++++++++++++++
 7 files changed, 104 insertions(+)
 create mode 100644 arch/mips/mach-bmips/Kconfig
 create mode 100644 arch/mips/mach-bmips/Makefile
 create mode 100644 arch/mips/mach-bmips/dram.c
 create mode 100644 include/configs/bmips_common.h

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index d97930e..c97ea41 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -75,6 +75,15 @@ config ARCH_ATH79
 	select OF_CONTROL
 	select DM
 
+config ARCH_BMIPS
+	bool "Support BMIPS SoCs"
+	select OF_CONTROL
+	select DM
+	select CLK
+	select CPU
+	select RAM
+	select SYSRESET
+
 config MACH_PIC32
 	bool "Support Microchip PIC32"
 	select OF_CONTROL
@@ -123,6 +132,7 @@ source "board/micronas/vct/Kconfig"
 source "board/pb1x00/Kconfig"
 source "board/qemu-mips/Kconfig"
 source "arch/mips/mach-ath79/Kconfig"
+source "arch/mips/mach-bmips/Kconfig"
 source "arch/mips/mach-pic32/Kconfig"
 
 if MIPS
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index efe7e44..c30d4ef 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -15,6 +15,7 @@ libs-y += arch/mips/lib/
 
 machine-$(CONFIG_SOC_AU1X00) += au1x00
 machine-$(CONFIG_ARCH_ATH79) += ath79
+machine-$(CONFIG_ARCH_BMIPS) += bmips
 machine-$(CONFIG_MACH_PIC32) += pic32
 
 machdirs := $(patsubst %,arch/mips/mach-%/,$(machine-y))
diff --git a/arch/mips/cpu/start.S b/arch/mips/cpu/start.S
index a6b7a04..d01ee9f 100644
--- a/arch/mips/cpu/start.S
+++ b/arch/mips/cpu/start.S
@@ -151,8 +151,13 @@ reset:
 	 mfc0	t0, CP0_GLOBALNUMBER
 #endif
 
+#ifdef CONFIG_ARCH_BMIPS
+1:	mfc0	t0, CP0_DIAGNOSTIC, 3
+	and	t0, t0, (1 << 31)
+#else
 1:	mfc0	t0, CP0_EBASE
 	and	t0, t0, EBASE_CPUNUM
+#endif
 
 	/* Hang if this isn't the first CPU in the system */
 2:	beqz	t0, 4f
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
new file mode 100644
index 0000000..4f4d351
--- /dev/null
+++ b/arch/mips/mach-bmips/Kconfig
@@ -0,0 +1,23 @@
+menu "Broadcom MIPS platforms"
+	depends on ARCH_BMIPS
+
+config SYS_SOC
+	default "none"
+
+choice
+	prompt "Boot mode"
+
+config BMIPS_BOOT_RAM
+	bool "RAM boot"
+	depends on BMIPS_SUPPORTS_BOOT_RAM
+	help
+	  This builds an image that is linked to a RAM address. It can be used
+	  for booting from CFE via TFTP using an ELF image, but it can also be
+	  booted from RAM by other bootloaders using a BIN image.
+
+endchoice
+
+config BMIPS_SUPPORTS_BOOT_RAM
+	bool
+
+endmenu
diff --git a/arch/mips/mach-bmips/Makefile b/arch/mips/mach-bmips/Makefile
new file mode 100644
index 0000000..f432acc
--- /dev/null
+++ b/arch/mips/mach-bmips/Makefile
@@ -0,0 +1,5 @@
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y += dram.o
diff --git a/arch/mips/mach-bmips/dram.c b/arch/mips/mach-bmips/dram.c
new file mode 100644
index 0000000..b19b28a
--- /dev/null
+++ b/arch/mips/mach-bmips/dram.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2016 Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <ram.h>
+#include <dm.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int dram_init(void)
+{
+	struct ram_info ram;
+	struct udevice *dev;
+	int err;
+
+	err = uclass_get_device(UCLASS_RAM, 0, &dev);
+	if (err) {
+		debug("DRAM init failed: %d\n", err);
+		return 0;
+	}
+
+	err = ram_get_info(dev, &ram);
+	if (err) {
+		debug("Cannot get DRAM size: %d\n", err);
+		return 0;
+	}
+
+	debug("SDRAM base=%zx, size=%x\n", ram.base, ram.size);
+
+	gd->ram_size = ram.size;
+
+	return 0;
+}
diff --git a/include/configs/bmips_common.h b/include/configs/bmips_common.h
new file mode 100644
index 0000000..d2b05d4
--- /dev/null
+++ b/include/configs/bmips_common.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __CONFIG_BMIPS_COMMON_H
+#define __CONFIG_BMIPS_COMMON_H
+
+/* RAM */
+#define CONFIG_SYS_MEMTEST_START	0xa0000000
+#define CONFIG_SYS_MEMTEST_END		0xa2000000
+
+/* Memory usage */
+#define CONFIG_SYS_MAXARGS		24
+#define CONFIG_SYS_MALLOC_LEN		(1024 * 1024)
+#define CONFIG_SYS_BOOTPARAMS_LEN	(128 * 1024)
+#define CONFIG_SYS_CBSIZE		512
+
+/* U-Boot */
+#define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
+
+#endif /* __CONFIG_BMIPS_COMMON_H */
-- 
2.1.4

  parent reply	other threads:[~2017-04-24 22:39 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-13 15:44 [U-Boot] [PATCH 0/8] Add support for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 1/8] cmd: cpu: fix NULL cpu feature prints Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 2/8] sysreset: add syscon-reboot driver Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 3/8] mips: allow using generic sysreset drivers Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 4/8] serial: add serial driver for BCM6345 Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 5/8] mips: add support for Broadcom MIPS Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 6/8] mips: bmips: fix first CPU check Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 7/8] mips: bmips: fix ioremap for BCM6358 Álvaro Fernández Rojas
2017-04-13 15:44 ` [U-Boot] [PATCH 8/8] mips: bmips: add support for raw .elf images Álvaro Fernández Rojas
2017-04-15 22:03 ` [U-Boot] [PATCH v2 00/14] Add support for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-15 22:03   ` [U-Boot] [PATCH v2 01/14] cmd: cpu: fix NULL cpu feature prints Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-15 22:03   ` [U-Boot] [PATCH v2 02/14] sysreset: add syscon-reboot driver Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-17 17:38       ` Álvaro Fernández Rojas
2017-04-17 17:45         ` Simon Glass
2017-04-18  6:40           ` Álvaro Fernández Rojas
2017-04-15 22:03   ` [U-Boot] [PATCH v2 03/14] MIPS: allow using generic sysreset drivers Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-15 22:03   ` [U-Boot] [PATCH v2 04/14] serial: add serial driver for BCM6345 Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-15 22:03   ` [U-Boot] [PATCH v2 05/14] cpu: add CPU driver for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-18  6:45       ` Álvaro Fernández Rojas
2017-04-15 22:03   ` [U-Boot] [PATCH v2 06/14] ram: add RAM " Álvaro Fernández Rojas
2017-04-16 19:34     ` Simon Glass
2017-04-15 22:03   ` [U-Boot] [PATCH v2 07/14] MIPS: add initial infrastructure " Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 08/14] MIPS: add support for Broadcom MIPS BCM6358 SoC family Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 09/14] MIPS: add BMIPS Huawei HG556a board Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 10/14] MIPS: add support for Broadcom MIPS BCM6328 SoC family Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 11/14] MIPS: add BMIPS Comtrend AR-5387un board Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 12/14] MIPS: add support for Broadcom MIPS BCM63268 SoC family Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 13/14] MIPS: add BMIPS Comtrend VR-3032u board Álvaro Fernández Rojas
2017-04-15 22:04   ` [U-Boot] [PATCH v2 14/14] u-boot.elf: build it for every arch Álvaro Fernández Rojas
2017-04-16 14:17     ` Daniel Schwierzeck
2017-04-18 20:35     ` [U-Boot] [PATCH v3 0/3] u-boot.elf: support other archs Álvaro Fernández Rojas
2017-04-18 20:35       ` [U-Boot] [PATCH v3 1/3] u-boot.elf: remove hard-coded arm64 flags Álvaro Fernández Rojas
2017-04-19 17:29         ` Tom Rini
2017-04-18 20:35       ` [U-Boot] [PATCH v3 2/3] u-boot.elf: fix entry symbol not found warning Álvaro Fernández Rojas
2017-04-19 17:29         ` Tom Rini
2017-04-18 20:35       ` [U-Boot] [PATCH v3 3/3] MIPS: add support for generating u-boot.elf Álvaro Fernández Rojas
2017-04-19 17:29       ` [U-Boot] [PATCH v3 0/3] u-boot.elf: support other archs Tom Rini
2017-04-18 20:38   ` [U-Boot] [PATCH v3 00/15] Add support for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 01/15] cmd: cpu: fix NULL cpu feature prints Álvaro Fernández Rojas
2017-04-20 20:06       ` Tom Rini
2017-04-18 20:38     ` [U-Boot] [PATCH v3 02/15] sysreset-uclass: ensure udevice is probed before requesting reset Álvaro Fernández Rojas
2017-04-19  0:13       ` Simon Glass
2017-04-19  5:27         ` Álvaro Fernández Rojas
2017-04-19  9:18           ` Álvaro Fernández Rojas
2017-04-19 21:25             ` Simon Glass
2017-04-20  0:12               ` Simon Glass
2017-04-18 20:38     ` [U-Boot] [PATCH v3 03/15] sysreset: add syscon-reboot driver Álvaro Fernández Rojas
2017-04-19  0:12       ` Simon Glass
2017-04-18 20:38     ` [U-Boot] [PATCH v3 04/15] MIPS: allow using generic sysreset drivers Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 05/15] serial: add serial driver for BCM6345 Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 06/15] cmd: cpu: ensure udevice is probed before calling cpu ops Álvaro Fernández Rojas
2017-04-19  0:13       ` Simon Glass
2017-04-18 20:38     ` [U-Boot] [PATCH v3 07/15] cpu: add CPU driver for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-19  0:12       ` Simon Glass
2017-04-18 20:38     ` [U-Boot] [PATCH v3 08/15] ram: add RAM " Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 09/15] MIPS: add initial infrastructure " Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 10/15] MIPS: add support for Broadcom MIPS BCM6358 SoC family Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 11/15] MIPS: add BMIPS Huawei HG556a board Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 12/15] MIPS: add support for Broadcom MIPS BCM6328 SoC family Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 13/15] MIPS: add BMIPS Comtrend AR-5387un board Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 14/15] MIPS: add support for Broadcom MIPS BCM63268 SoC family Álvaro Fernández Rojas
2017-04-18 20:38     ` [U-Boot] [PATCH v3 15/15] MIPS: add BMIPS Comtrend VR-3032u board Álvaro Fernández Rojas
2017-04-24 22:39 ` [U-Boot] [PATCH v6 00/14] Add support for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-24 22:39   ` [U-Boot] [PATCH v6 01/14] cmd: cpu: fix NULL cpu feature prints Álvaro Fernández Rojas
2017-04-30 18:31     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 02/14] sysreset: add syscon-reboot driver Álvaro Fernández Rojas
2017-04-30 18:31     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 03/14] MIPS: allow using generic sysreset drivers Álvaro Fernández Rojas
2017-04-30 18:31     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 04/14] serial: add serial driver for BCM6345 Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:32     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 05/14] cmd: cpu: refactor to ensure devices are probed and improve code style Álvaro Fernández Rojas
2017-04-30 18:32     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 06/14] cpu: add CPU driver for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-30 18:32     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 07/14] ram: add RAM " Álvaro Fernández Rojas
2017-04-30 18:33     ` Daniel Schwierzeck
2017-04-24 22:39   ` Álvaro Fernández Rojas [this message]
2017-04-29  0:27     ` [U-Boot] [PATCH v6 08/14] MIPS: add initial infrastructure " Simon Glass
2017-04-30 18:33     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 09/14] MIPS: add support for Broadcom MIPS BCM6358 SoC family Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:33     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 10/14] MIPS: add BMIPS Huawei HG556a board Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:34     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 11/14] MIPS: add support for Broadcom MIPS BCM6328 SoC family Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:34     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 12/14] MIPS: add BMIPS Comtrend AR-5387un board Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:34     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 13/14] MIPS: add support for Broadcom MIPS BCM63268 SoC family Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:35     ` Daniel Schwierzeck
2017-04-24 22:39   ` [U-Boot] [PATCH v6 14/14] MIPS: add BMIPS Comtrend VR-3032u board Álvaro Fernández Rojas
2017-04-29  0:27     ` Simon Glass
2017-04-30 18:35     ` Daniel Schwierzeck

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=1493073566-11982-9-git-send-email-noltari@gmail.com \
    --to=noltari@gmail.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.