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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox