public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 08/14] MIPS: add initial infrastructure for Broadcom MIPS SoCs
Date: Sun, 23 Apr 2017 22:23:32 +0200	[thread overview]
Message-ID: <64324abb-244d-324e-8999-cc07a1a8495c@gmail.com> (raw)
In-Reply-To: <1492937036-31171-9-git-send-email-noltari@gmail.com>



Am 23.04.2017 um 10:43 schrieb Álvaro Fernández Rojas:
> 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>
> ---
>  v4: No changes.
>  v5: 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   | 22 ++++++++++++++++++++++
>  arch/mips/mach-bmips/Makefile  |  5 +++++
>  arch/mips/mach-bmips/dram.c    | 37 +++++++++++++++++++++++++++++++++++++
>  include/configs/bmips_common.h | 27 +++++++++++++++++++++++++++
>  7 files changed, 107 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 f7dee81..5c1ad00 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..42a7e41
> --- /dev/null
> +++ b/arch/mips/mach-bmips/Kconfig
> @@ -0,0 +1,22 @@
> +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. Caches are
> +	  disabled and environment is built in.

maybe you should rename the Kconfig symbol and rephrase the help text.
You want to have a stage2 loader in ELF format. For this, caches
shouldn't be disabled or touched at all. Also it's up to the user if he
wants a persistent environment in flash.

> +
> +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..3d67729
> --- /dev/null
> +++ b/include/configs/bmips_common.h
> @@ -0,0 +1,27 @@
> +/*
> + * 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
> +
> +/* Serial */
> +#define CONFIG_BAUDRATE			115200
> +
> +/* 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
> +#define CONFIG_REMAKE_ELF
> +
> +#endif /* __CONFIG_BMIPS_COMMON_H */
> 

-- 
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170423/c428988c/attachment.sig>

  reply	other threads:[~2017-04-23 20:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-23  8:43 [U-Boot] [PATCH v5 00/14] Add support for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 01/14] cmd: cpu: fix NULL cpu feature prints Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 02/14] sysreset: add syscon-reboot driver Álvaro Fernández Rojas
2017-04-23 20:16   ` Daniel Schwierzeck
2017-04-23  8:43 ` [U-Boot] [PATCH v5 03/14] MIPS: allow using generic sysreset drivers Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 04/14] serial: add serial driver for BCM6345 Álvaro Fernández Rojas
2017-04-23 20:12   ` Daniel Schwierzeck
2017-04-23  8:43 ` [U-Boot] [PATCH v5 05/14] cmd: cpu: refactor to ensure devices are probed and improve code style Álvaro Fernández Rojas
2017-04-24  3:39   ` Simon Glass
2017-04-23  8:43 ` [U-Boot] [PATCH v5 06/14] cpu: add CPU driver for Broadcom MIPS SoCs Álvaro Fernández Rojas
2017-04-24  3:39   ` Simon Glass
2017-04-23  8:43 ` [U-Boot] [PATCH v5 07/14] ram: add RAM " Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 08/14] MIPS: add initial infrastructure " Álvaro Fernández Rojas
2017-04-23 20:23   ` Daniel Schwierzeck [this message]
2017-04-24 10:25     ` Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 09/14] MIPS: add support for Broadcom MIPS BCM6358 SoC family Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 10/14] MIPS: add BMIPS Huawei HG556a board Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 11/14] MIPS: add support for Broadcom MIPS BCM6328 SoC family Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 12/14] MIPS: add BMIPS Comtrend AR-5387un board Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 13/14] MIPS: add support for Broadcom MIPS BCM63268 SoC family Álvaro Fernández Rojas
2017-04-23  8:43 ` [U-Boot] [PATCH v5 14/14] MIPS: add BMIPS Comtrend VR-3032u board Álvaro Fernández Rojas

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=64324abb-244d-324e-8999-cc07a1a8495c@gmail.com \
    --to=daniel.schwierzeck@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