* [PATCH] arm: moxa: add nport6600 platform
@ 2023-07-31 18:43 Sergei Antonov
2023-07-31 18:59 ` Tom Rini
2023-08-02 21:31 ` Simon Glass
0 siblings, 2 replies; 7+ messages in thread
From: Sergei Antonov @ 2023-07-31 18:43 UTC (permalink / raw)
To: u-boot, trini; +Cc: sjg, Sergei Antonov
Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
Technical specifications:
FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
optional expansion modules, up to 32 RS-232/422/485 ports.
Signed-off-by: Sergei Antonov <saproj@gmail.com>
---
arch/arm/Kconfig | 9 +++
arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
board/moxa/nport6600/Kconfig | 15 ++++
board/moxa/nport6600/MAINTAINERS | 7 ++
board/moxa/nport6600/Makefile | 3 +
board/moxa/nport6600/nport6600.c | 78 ++++++++++++++++++
configs/nport6600_defconfig | 129 +++++++++++++++++++++++++++++
include/configs/nport6600.h | 13 +++
8 files changed, 388 insertions(+)
create mode 100644 arch/arm/dts/nport6600.dts
create mode 100644 board/moxa/nport6600/Kconfig
create mode 100644 board/moxa/nport6600/MAINTAINERS
create mode 100644 board/moxa/nport6600/Makefile
create mode 100644 board/moxa/nport6600/nport6600.c
create mode 100644 configs/nport6600_defconfig
create mode 100644 include/configs/nport6600.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 97c25b4f146d..de5b746b93c9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -705,6 +705,14 @@ config TARGET_BCMNS3
ARMv8 Cortex-A72 processors targeting a broad range of networking
applications.
+config TARGET_NPORT6600
+ bool "Support NPort 6600"
+ select CPU_ARM720T
+ help
+ Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
+ FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
+ optional expansion modules, up to 32 RS-232/422/485 ports.
+
config ARCH_EXYNOS
bool "Samsung EXYNOS"
select DM
@@ -2312,6 +2320,7 @@ source "board/hisilicon/hikey960/Kconfig"
source "board/hisilicon/poplar/Kconfig"
source "board/isee/igep003x/Kconfig"
source "board/kontron/sl28/Kconfig"
+source "board/moxa/nport6600/Kconfig"
source "board/myir/mys_6ulx/Kconfig"
source "board/samsung/common/Kconfig"
source "board/siemens/common/Kconfig"
diff --git a/arch/arm/dts/nport6600.dts b/arch/arm/dts/nport6600.dts
new file mode 100644
index 000000000000..ea268ed16d9b
--- /dev/null
+++ b/arch/arm/dts/nport6600.dts
@@ -0,0 +1,134 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ model = "MOXA NPort 6600 Series";
+ compatible = "moxa,nport6600";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x4000000>;
+ };
+
+ ahb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ device_type = "soc";
+ ranges;
+ bootph-all;
+
+ apb {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ bootph-all;
+
+ uart1: serial@98200020 {
+ compatible = "ns16550a";
+ reg = <0x98200020 0x20>;
+ reg-io-width = <4>;
+ reg-shift = <2>;
+ clock-frequency = <14745600>;
+ no-loopback-test;
+ bootph-all;
+ status = "okay";
+ };
+
+ timer: timer@98400000 {
+ compatible = "faraday,fttmr010-timer";
+ reg = <0x98400000 0x40>;
+ clock-frequency = <12000000>;
+ };
+
+ wdt: wdt@98500000 {
+ compatible = "faraday,ftwdt010";
+ reg = <0x98500000 0x20>;
+ };
+
+ gpio: gpio@98700000 {
+ compatible = "faraday,ftgpio010";
+ reg = <0x98700000 0x20>;
+ nr-gpios = <32>;
+ #gpio-cells = <2>;
+ };
+
+ rtc {
+ compatible = "holtek,ht1380";
+ rst-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+ clk-gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ dat-gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
+ };
+
+ mmc0: mmc@98e00000 {
+ compatible = "andestech,atfsdc010";
+ bus-width = <4>;
+ max-frequency = <25000000>;
+ reg = <0x98e00000 0x1000>;
+ cap-sd-highspeed;
+ };
+ };
+
+ nor@80000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "cfi-flash";
+ reg = <0x80000000 0x0>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ mtd1 {
+ label = "moxa";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+ mtd2 {
+ label = "env";
+ reg = <0x40000 0x100000>;
+ read-only;
+ };
+ mtd3 {
+ label = "uboot";
+ reg = <0x140000 0xc0000>;
+ };
+ mtd4 {
+ label = "mfs";
+ reg = <0x200000 0x20000>;
+ read-only;
+ };
+ mtd5 {
+ label = "ubi";
+ reg = <0x220000 0xde0000>;
+ };
+ };
+ };
+
+ mac@92000000 {
+ compatible = "andestech,atmac100";
+ reg = <0x92000000 0x90>;
+ };
+
+ pci0@90c00000 {
+ compatible = "faraday,ftpci100";
+ device_type = "pci";
+ reg = <0x90c00000 0x30>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ bus-range = <0x0 0xff>;
+ ranges = <0x01000000 0 0x90c00000 0x90c00000 0 0x00100000 /* I/O */
+ 0x02000000 0 0xa0000000 0xa0000000 0 0x02000000 /* MEM */>;
+
+ status = "okay";
+ };
+ };
+};
diff --git a/board/moxa/nport6600/Kconfig b/board/moxa/nport6600/Kconfig
new file mode 100644
index 000000000000..3094b380c0fd
--- /dev/null
+++ b/board/moxa/nport6600/Kconfig
@@ -0,0 +1,15 @@
+if TARGET_NPORT6600
+
+config SYS_BOARD
+ default "nport6600"
+
+config SYS_VENDOR
+ default "moxa"
+
+config SYS_SOC
+ default "moxa"
+
+config SYS_CONFIG_NAME
+ default "nport6600"
+
+endif
diff --git a/board/moxa/nport6600/MAINTAINERS b/board/moxa/nport6600/MAINTAINERS
new file mode 100644
index 000000000000..fca3d9d0dbfa
--- /dev/null
+++ b/board/moxa/nport6600/MAINTAINERS
@@ -0,0 +1,7 @@
+NPORT6600 BOARD
+M: Sergei Antonov <saproj@gmail.com>
+S: Maintained
+F: board/moxa/nport6600/
+F: arch/arm/dts/nport6600.dts
+F: include/configs/nport6600.h
+F: configs/nport6600_defconfig
diff --git a/board/moxa/nport6600/Makefile b/board/moxa/nport6600/Makefile
new file mode 100644
index 000000000000..8d853eaa1a57
--- /dev/null
+++ b/board/moxa/nport6600/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+obj-y := nport6600.o
diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
new file mode 100644
index 000000000000..88fa98c315fd
--- /dev/null
+++ b/board/moxa/nport6600/nport6600.c
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <common.h>
+#include <init.h>
+#include <env.h>
+#include <cpu_func.h>
+#include <string.h>
+
+int dram_init(void)
+{
+ return fdtdec_setup_mem_size_base();
+}
+
+int board_init(void)
+{
+ return 0;
+}
+
+int show_board_info(void)
+{
+ const u8 *NPORT_EXPANSION_MODULE = (const u8 *)0x8c0000c0;
+ const unsigned int module_id = *NPORT_EXPANSION_MODULE;
+ static const char * const modules[] = {
+ NULL,
+ "NM-TX01",
+ "NM-FX01-M-SC",
+ "NM-FX01-S-SC",
+ NULL,
+ "NM-FX02-M-SC",
+ "NM-FX02-S-SC",
+ "NM_GPRS",
+ "NM-TX02",
+ };
+
+ /* Check for Module */
+ if (module_id < ARRAY_SIZE(modules) && modules[module_id])
+ printf("Expansion module %s detected\n", modules[module_id]);
+
+ return 0;
+}
+
+static int read_net_params(void)
+{
+ const u8 *MAC_ADDR = (const u8 *)0x80000050;
+
+ if (eth_env_set_enetaddr("ethaddr", MAC_ADDR))
+ return -1;
+
+ return 0;
+}
+
+int misc_init_r(void)
+{
+ const char *SERIAL_STR = (const char *)0x80000034;
+ const unsigned int SERIAL_LEN = 12;
+ char str[SERIAL_LEN + 1];
+
+ if (*SERIAL_STR) {
+ memcpy(str, SERIAL_STR, SERIAL_LEN);
+ str[SERIAL_LEN] = 0;
+ } else {
+ /* No serial string. Resort to a 2-byte serial number. */
+ const u16 *SERIAL_NO = (const u16 *)0x8000004c;
+
+ sprintf(str, "%05u", *SERIAL_NO);
+ }
+
+ if (env_set("serial#", str))
+ return -1;
+
+ return read_net_params();
+}
+
+void enable_caches(void)
+{
+ icache_enable();
+ dcache_enable();
+}
diff --git a/configs/nport6600_defconfig b/configs/nport6600_defconfig
new file mode 100644
index 000000000000..47db1ca20ae6
--- /dev/null
+++ b/configs/nport6600_defconfig
@@ -0,0 +1,129 @@
+CONFIG_ARM=y
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="echo Serial number: ${serial#}"
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND=""
+CONFIG_BOOTDELAY=1
+# CONFIG_BOOTSTD is not set
+CONFIG_DISPLAY_BOARDINFO=y
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_LTO=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CLS=y
+CONFIG_CMD_CRC32=y
+CONFIG_CMD_FLASH=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_LOG=y
+CONFIG_CMD_MD5SUM=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MTDPARTS=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_NET=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_UBI=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_DM=y
+CONFIG_ENV_SUPPORT=y
+CONFIG_FTMAC100=y
+CONFIG_HUSH_PARSER=y
+CONFIG_LOG_CONSOLE=y
+CONFIG_LOG_MAX_LEVEL=8
+CONFIG_LOG_DEFAULT_LEVEL=6
+CONFIG_LOGLEVEL=7
+CONFIG_LOG=y
+CONFIG_MISC_INIT_R=y
+CONFIG_OF_LIBFDT=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_CBSIZE=256
+CONFIG_SYS_DCACHE_OFF=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_MEMTEST_END=0x3F00000
+CONFIG_SYS_MEMTEST_START=0x00000000
+CONFIG_SYS_NS16550=y
+CONFIG_NS16550_DYNAMIC=y
+CONFIG_SYS_PBSIZE=280
+CONFIG_SYS_PROMPT="MOXA NPort 6600 # "
+CONFIG_TEXT_BASE=0x80140020
+CONFIG_TARGET_NPORT6600=y
+CONFIG_FS_EXT4=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_FS_FAT=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_SHA1SUM=y
+CONFIG_CMD_STRINGS=y
+CONFIG_CMD_UNLZ4=y
+CONFIG_CMD_UNZIP=y
+CONFIG_CMD_SETEXPR=y
+CONFIG_CMD_SETEXPR_FMT=y
+CONFIG_CMD_READ=y
+CONFIG_CMD_GETTIME=y
+CONFIG_CMD_TIMER=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_MEM_SEARCH=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_EXPORTENV=y
+CONFIG_CMD_IMPORTENV=y
+CONFIG_CMD_EDITENV=y
+CONFIG_CMD_GREPENV=y
+CONFIG_CMD_SAVEENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_EXISTS=y
+CONFIG_CMD_ENV_CALLBACK=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_SYS_LOAD_ADDR=0x100000
+CONFIG_CMD_LOADB=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_MBR=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_WGET=y
+CONFIG_DM_STATS=y
+CONFIG_CMD_HASH=y
+CONFIG_HASH_VERIFY=y
+CONFIG_CMD_DHCP=y
+CONFIG_BAUDRATE=115200
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_MTD=y
+CONFIG_CFI_FLASH=y
+CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
+CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_FLASH_CFI_WIDTH_16BIT=y
+CONFIG_SYS_FLASH_EMPTY_INFO=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="nport6600"
+CONFIG_SYS_CLK_FREQ=48000000
+CONFIG_TIMER=y
+CONFIG_FTTMR010_TIMER=y
+CONFIG_DM_SERIAL=y
+CONFIG_DM_ETH=y
+CONFIG_MMC=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_VERBOSE=y
+CONFIG_CMD_MMC=y
+CONFIG_FTSDC010=y
+CONFIG_WDT_FTWDT010=y
+CONFIG_WDT=y
+CONFIG_CMD_WDT=y
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_WATCHDOG=y
+CONFIG_SYSRESET_WATCHDOG_AUTO=y
+CONFIG_CMD_GPIO=y
+CONFIG_DM_GPIO=y
+CONFIG_DM_RTC=y
+CONFIG_RTC_HT1380=y
+CONFIG_CMD_RTC=y
+CONFIG_CMD_DATE=y
+CONFIG_FTGPIO010=y
+CONFIG_CMD_MII=y
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="console=ttyS0,115200n8"
+CONFIG_IPV6=y
+CONFIG_PCI=y
+CONFIG_CMD_PCI=y
+CONFIG_PCI_FTPCI100=y
diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
new file mode 100644
index 000000000000..c70cc7e1ac72
--- /dev/null
+++ b/include/configs/nport6600.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef _CONFIG_NPORT6600_H
+#define _CONFIG_NPORT6600_H
+
+#include <linux/sizes.h>
+
+#define CFG_SYS_INIT_RAM_ADDR 0
+#define CFG_SYS_INIT_RAM_SIZE SZ_64M
+
+#define __io
+
+#endif /* _CONFIG_NPORT6600_H */
--
2.37.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-07-31 18:43 [PATCH] arm: moxa: add nport6600 platform Sergei Antonov
@ 2023-07-31 18:59 ` Tom Rini
2023-08-01 10:11 ` Sergei Antonov
2023-08-02 21:31 ` Simon Glass
1 sibling, 1 reply; 7+ messages in thread
From: Tom Rini @ 2023-07-31 18:59 UTC (permalink / raw)
To: Sergei Antonov; +Cc: u-boot, sjg
[-- Attachment #1: Type: text/plain, Size: 1118 bytes --]
On Mon, Jul 31, 2023 at 09:43:29PM +0300, Sergei Antonov wrote:
> Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
>
> Technical specifications:
> FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> optional expansion modules, up to 32 RS-232/422/485 ports.
>
> Signed-off-by: Sergei Antonov <saproj@gmail.com>
> ---
> arch/arm/Kconfig | 9 +++
> arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
Where does the device tree come from?
> diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> new file mode 100644
> index 000000000000..88fa98c315fd
> --- /dev/null
> +++ b/board/moxa/nport6600/nport6600.c
> @@ -0,0 +1,78 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +
> +#include <common.h>
New files must not add common.h
> diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
> new file mode 100644
> index 000000000000..c70cc7e1ac72
> --- /dev/null
> +++ b/include/configs/nport6600.h
[snip]
> +#define __io
What's this for?
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-07-31 18:59 ` Tom Rini
@ 2023-08-01 10:11 ` Sergei Antonov
2023-08-01 14:27 ` Tom Rini
0 siblings, 1 reply; 7+ messages in thread
From: Sergei Antonov @ 2023-08-01 10:11 UTC (permalink / raw)
To: Tom Rini; +Cc: u-boot, sjg
On Mon, 31 Jul 2023 at 21:59, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Jul 31, 2023 at 09:43:29PM +0300, Sergei Antonov wrote:
>
> > Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
> >
> > Technical specifications:
> > FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> > optional expansion modules, up to 32 RS-232/422/485 ports.
> >
> > Signed-off-by: Sergei Antonov <saproj@gmail.com>
> > ---
> > arch/arm/Kconfig | 9 +++
> > arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
>
> Where does the device tree come from?
From the datasheet, testing, and a similar dts in Linux:
https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts/moxa
> > diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> > new file mode 100644
> > index 000000000000..88fa98c315fd
> > --- /dev/null
> > +++ b/board/moxa/nport6600/nport6600.c
> > @@ -0,0 +1,78 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +
> > +#include <common.h>
OK. Compiles without it.
> New files must not add common.h
>
> > diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
> > new file mode 100644
> > index 000000000000..c70cc7e1ac72
> > --- /dev/null
> > +++ b/include/configs/nport6600.h
> [snip]
> > +#define __io
>
> What's this for?
Removing it leads to warnings:
.../u-boot/drivers/serial/ns16550.c: In function ‘serial_out_dynamic’:
.../u-boot/drivers/serial/ns16550.c:111:17: warning: implicit
declaration of function ‘outb’ [-Wimplicit-function-declaration]
111 | outb(value, addr);
| ^~~~
.../u-boot/drivers/serial/ns16550.c: In function ‘serial_in_dynamic’:
.../u-boot/drivers/serial/ns16550.c:131:24: warning: implicit
declaration of function ‘inb’; did you mean ‘isb’?
[-Wimplicit-function-declaration]
131 | return inb(addr);
| ^~~
| isb
and then linking errors:
.../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
/tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_writeb.isra.0':
.../u-boot/drivers/serial/ns16550.c:111: undefined reference to `outb'
.../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
/tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_readb.isra.0':
.../u-boot/drivers/serial/ns16550.c:131: undefined reference to `inb'
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-08-01 10:11 ` Sergei Antonov
@ 2023-08-01 14:27 ` Tom Rini
2023-08-02 14:27 ` Sergei Antonov
0 siblings, 1 reply; 7+ messages in thread
From: Tom Rini @ 2023-08-01 14:27 UTC (permalink / raw)
To: Sergei Antonov; +Cc: u-boot, sjg
[-- Attachment #1: Type: text/plain, Size: 3002 bytes --]
On Tue, Aug 01, 2023 at 01:11:28PM +0300, Sergei Antonov wrote:
> On Mon, 31 Jul 2023 at 21:59, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Jul 31, 2023 at 09:43:29PM +0300, Sergei Antonov wrote:
> >
> > > Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
> > >
> > > Technical specifications:
> > > FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> > > optional expansion modules, up to 32 RS-232/422/485 ports.
> > >
> > > Signed-off-by: Sergei Antonov <saproj@gmail.com>
> > > ---
> > > arch/arm/Kconfig | 9 +++
> > > arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
> >
> > Where does the device tree come from?
>
> From the datasheet, testing, and a similar dts in Linux:
> https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts/moxa
It needs to be the same dts as in Linux, and re-synced periodically.
The -u-boot.dtsi file can be used for changes that are still being
staged to Linux, but shouldn't be used indefinitely.
> > > diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> > > new file mode 100644
> > > index 000000000000..88fa98c315fd
> > > --- /dev/null
> > > +++ b/board/moxa/nport6600/nport6600.c
> > > @@ -0,0 +1,78 @@
> > > +// SPDX-License-Identifier: GPL-2.0-or-later
> > > +
> > > +#include <common.h>
>
> OK. Compiles without it.
>
> > New files must not add common.h
> >
> > > diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
> > > new file mode 100644
> > > index 000000000000..c70cc7e1ac72
> > > --- /dev/null
> > > +++ b/include/configs/nport6600.h
> > [snip]
> > > +#define __io
> >
> > What's this for?
>
> Removing it leads to warnings:
>
> .../u-boot/drivers/serial/ns16550.c: In function ‘serial_out_dynamic’:
> .../u-boot/drivers/serial/ns16550.c:111:17: warning: implicit
> declaration of function ‘outb’ [-Wimplicit-function-declaration]
> 111 | outb(value, addr);
> | ^~~~
> .../u-boot/drivers/serial/ns16550.c: In function ‘serial_in_dynamic’:
> .../u-boot/drivers/serial/ns16550.c:131:24: warning: implicit
> declaration of function ‘inb’; did you mean ‘isb’?
> [-Wimplicit-function-declaration]
> 131 | return inb(addr);
> | ^~~
> | isb
>
> and then linking errors:
>
> .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_writeb.isra.0':
> .../u-boot/drivers/serial/ns16550.c:111: undefined reference to `outb'
> .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_readb.isra.0':
> .../u-boot/drivers/serial/ns16550.c:131: undefined reference to `inb'
Oh, you need to be enabling CONFIG_DM_SERIAL.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-08-01 14:27 ` Tom Rini
@ 2023-08-02 14:27 ` Sergei Antonov
2023-08-02 15:19 ` Tom Rini
0 siblings, 1 reply; 7+ messages in thread
From: Sergei Antonov @ 2023-08-02 14:27 UTC (permalink / raw)
To: Tom Rini; +Cc: u-boot, sjg
On Tue, 1 Aug 2023 at 17:27, Tom Rini <trini@konsulko.com> wrote:
>
> On Tue, Aug 01, 2023 at 01:11:28PM +0300, Sergei Antonov wrote:
> > On Mon, 31 Jul 2023 at 21:59, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Jul 31, 2023 at 09:43:29PM +0300, Sergei Antonov wrote:
> > >
> > > > Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
> > > >
> > > > Technical specifications:
> > > > FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> > > > optional expansion modules, up to 32 RS-232/422/485 ports.
> > > >
> > > > Signed-off-by: Sergei Antonov <saproj@gmail.com>
> > > > ---
> > > > arch/arm/Kconfig | 9 +++
> > > > arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
> > >
> > > Where does the device tree come from?
> >
> > From the datasheet, testing, and a similar dts in Linux:
> > https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts/moxa
>
> It needs to be the same dts as in Linux, and re-synced periodically.
> The -u-boot.dtsi file can be used for changes that are still being
> staged to Linux, but shouldn't be used indefinitely.
There is no dts in Linux for the device (a family of devices) I am
submitting. Linux has a dts for a similar device.
> > > > diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> > > > new file mode 100644
> > > > index 000000000000..88fa98c315fd
> > > > --- /dev/null
> > > > +++ b/board/moxa/nport6600/nport6600.c
> > > > @@ -0,0 +1,78 @@
> > > > +// SPDX-License-Identifier: GPL-2.0-or-later
> > > > +
> > > > +#include <common.h>
> >
> > OK. Compiles without it.
> >
> > > New files must not add common.h
> > >
> > > > diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
> > > > new file mode 100644
> > > > index 000000000000..c70cc7e1ac72
> > > > --- /dev/null
> > > > +++ b/include/configs/nport6600.h
> > > [snip]
> > > > +#define __io
> > >
> > > What's this for?
> >
> > Removing it leads to warnings:
> >
> > .../u-boot/drivers/serial/ns16550.c: In function ‘serial_out_dynamic’:
> > .../u-boot/drivers/serial/ns16550.c:111:17: warning: implicit
> > declaration of function ‘outb’ [-Wimplicit-function-declaration]
> > 111 | outb(value, addr);
> > | ^~~~
> > .../u-boot/drivers/serial/ns16550.c: In function ‘serial_in_dynamic’:
> > .../u-boot/drivers/serial/ns16550.c:131:24: warning: implicit
> > declaration of function ‘inb’; did you mean ‘isb’?
> > [-Wimplicit-function-declaration]
> > 131 | return inb(addr);
> > | ^~~
> > | isb
> >
> > and then linking errors:
> >
> > .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> > /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_writeb.isra.0':
> > .../u-boot/drivers/serial/ns16550.c:111: undefined reference to `outb'
> > .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> > /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_readb.isra.0':
> > .../u-boot/drivers/serial/ns16550.c:131: undefined reference to `inb'
>
> Oh, you need to be enabling CONFIG_DM_SERIAL.
It IS enabled.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-08-02 14:27 ` Sergei Antonov
@ 2023-08-02 15:19 ` Tom Rini
0 siblings, 0 replies; 7+ messages in thread
From: Tom Rini @ 2023-08-02 15:19 UTC (permalink / raw)
To: Sergei Antonov; +Cc: u-boot, sjg
[-- Attachment #1: Type: text/plain, Size: 3713 bytes --]
On Wed, Aug 02, 2023 at 05:27:54PM +0300, Sergei Antonov wrote:
> On Tue, 1 Aug 2023 at 17:27, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Tue, Aug 01, 2023 at 01:11:28PM +0300, Sergei Antonov wrote:
> > > On Mon, 31 Jul 2023 at 21:59, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Jul 31, 2023 at 09:43:29PM +0300, Sergei Antonov wrote:
> > > >
> > > > > Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
> > > > >
> > > > > Technical specifications:
> > > > > FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> > > > > optional expansion modules, up to 32 RS-232/422/485 ports.
> > > > >
> > > > > Signed-off-by: Sergei Antonov <saproj@gmail.com>
> > > > > ---
> > > > > arch/arm/Kconfig | 9 +++
> > > > > arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
> > > >
> > > > Where does the device tree come from?
> > >
> > > From the datasheet, testing, and a similar dts in Linux:
> > > https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts/moxa
> >
> > It needs to be the same dts as in Linux, and re-synced periodically.
> > The -u-boot.dtsi file can be used for changes that are still being
> > staged to Linux, but shouldn't be used indefinitely.
>
> There is no dts in Linux for the device (a family of devices) I am
> submitting. Linux has a dts for a similar device.
Please upstream the device tree.
> > > > > diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> > > > > new file mode 100644
> > > > > index 000000000000..88fa98c315fd
> > > > > --- /dev/null
> > > > > +++ b/board/moxa/nport6600/nport6600.c
> > > > > @@ -0,0 +1,78 @@
> > > > > +// SPDX-License-Identifier: GPL-2.0-or-later
> > > > > +
> > > > > +#include <common.h>
> > >
> > > OK. Compiles without it.
> > >
> > > > New files must not add common.h
> > > >
> > > > > diff --git a/include/configs/nport6600.h b/include/configs/nport6600.h
> > > > > new file mode 100644
> > > > > index 000000000000..c70cc7e1ac72
> > > > > --- /dev/null
> > > > > +++ b/include/configs/nport6600.h
> > > > [snip]
> > > > > +#define __io
> > > >
> > > > What's this for?
> > >
> > > Removing it leads to warnings:
> > >
> > > .../u-boot/drivers/serial/ns16550.c: In function ‘serial_out_dynamic’:
> > > .../u-boot/drivers/serial/ns16550.c:111:17: warning: implicit
> > > declaration of function ‘outb’ [-Wimplicit-function-declaration]
> > > 111 | outb(value, addr);
> > > | ^~~~
> > > .../u-boot/drivers/serial/ns16550.c: In function ‘serial_in_dynamic’:
> > > .../u-boot/drivers/serial/ns16550.c:131:24: warning: implicit
> > > declaration of function ‘inb’; did you mean ‘isb’?
> > > [-Wimplicit-function-declaration]
> > > 131 | return inb(addr);
> > > | ^~~
> > > | isb
> > >
> > > and then linking errors:
> > >
> > > .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> > > /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_writeb.isra.0':
> > > .../u-boot/drivers/serial/ns16550.c:111: undefined reference to `outb'
> > > .../armv4/lib/gcc/armv4-linux-gnueabi/13.0.1/../../../../armv4-linux-gnueabi/bin/ld:
> > > /tmp/ccIta0uJ.ltrans12.ltrans.o: in function `ns16550_readb.isra.0':
> > > .../u-boot/drivers/serial/ns16550.c:131: undefined reference to `inb'
> >
> > Oh, you need to be enabling CONFIG_DM_SERIAL.
>
> It IS enabled.
Oh, I see it now, you're right, sorry. But, is CONFIG_NS16550_DYNAMIC
really the only choice here?
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] arm: moxa: add nport6600 platform
2023-07-31 18:43 [PATCH] arm: moxa: add nport6600 platform Sergei Antonov
2023-07-31 18:59 ` Tom Rini
@ 2023-08-02 21:31 ` Simon Glass
1 sibling, 0 replies; 7+ messages in thread
From: Simon Glass @ 2023-08-02 21:31 UTC (permalink / raw)
To: Sergei Antonov; +Cc: u-boot, trini
Hi Sergei,
On Mon, 31 Jul 2023 at 12:43, Sergei Antonov <saproj@gmail.com> wrote:
>
> Support for NPort 6600 Series RS-232/422/485 secure terminal servers.
>
> Technical specifications:
> FA526 ARMv4 CPU, 64 MB of RAM, 16 MB NOR flash, 100 Mbit/s Ethernet,
> optional expansion modules, up to 32 RS-232/422/485 ports.
>
> Signed-off-by: Sergei Antonov <saproj@gmail.com>
> ---
> arch/arm/Kconfig | 9 +++
> arch/arm/dts/nport6600.dts | 134 +++++++++++++++++++++++++++++++
> board/moxa/nport6600/Kconfig | 15 ++++
> board/moxa/nport6600/MAINTAINERS | 7 ++
> board/moxa/nport6600/Makefile | 3 +
> board/moxa/nport6600/nport6600.c | 78 ++++++++++++++++++
> configs/nport6600_defconfig | 129 +++++++++++++++++++++++++++++
> include/configs/nport6600.h | 13 +++
> 8 files changed, 388 insertions(+)
> create mode 100644 arch/arm/dts/nport6600.dts
> create mode 100644 board/moxa/nport6600/Kconfig
> create mode 100644 board/moxa/nport6600/MAINTAINERS
> create mode 100644 board/moxa/nport6600/Makefile
> create mode 100644 board/moxa/nport6600/nport6600.c
> create mode 100644 configs/nport6600_defconfig
> create mode 100644 include/configs/nport6600.h
>
[..]
> diff --git a/board/moxa/nport6600/Makefile b/board/moxa/nport6600/Makefile
> new file mode 100644
> index 000000000000..8d853eaa1a57
> --- /dev/null
> +++ b/board/moxa/nport6600/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +obj-y := nport6600.o
> diff --git a/board/moxa/nport6600/nport6600.c b/board/moxa/nport6600/nport6600.c
> new file mode 100644
> index 000000000000..88fa98c315fd
> --- /dev/null
> +++ b/board/moxa/nport6600/nport6600.c
> @@ -0,0 +1,78 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +
> +#include <common.h>
> +#include <init.h>
> +#include <env.h>
> +#include <cpu_func.h>
> +#include <string.h>
> +
> +int dram_init(void)
> +{
> + return fdtdec_setup_mem_size_base();
> +}
> +
> +int board_init(void)
> +{
> + return 0;
> +}
> +
> +int show_board_info(void)
Can you use the sysinfo API and command instead?
> +{
> + const u8 *NPORT_EXPANSION_MODULE = (const u8 *)0x8c0000c0;
> + const unsigned int module_id = *NPORT_EXPANSION_MODULE;
> + static const char * const modules[] = {
> + NULL,
> + "NM-TX01",
> + "NM-FX01-M-SC",
> + "NM-FX01-S-SC",
> + NULL,
> + "NM-FX02-M-SC",
> + "NM-FX02-S-SC",
> + "NM_GPRS",
> + "NM-TX02",
> + };
> +
> + /* Check for Module */
> + if (module_id < ARRAY_SIZE(modules) && modules[module_id])
> + printf("Expansion module %s detected\n", modules[module_id]);
> +
> + return 0;
> +}
> +
> +static int read_net_params(void)
> +{
> + const u8 *MAC_ADDR = (const u8 *)0x80000050;
> +
> + if (eth_env_set_enetaddr("ethaddr", MAC_ADDR))
> + return -1;
> +
> + return 0;
> +}
> +
> +int misc_init_r(void)
> +{
> + const char *SERIAL_STR = (const char *)0x80000034;
Is that in the devicetree
?
> + const unsigned int SERIAL_LEN = 12;
> + char str[SERIAL_LEN + 1];
> +
> + if (*SERIAL_STR) {
> + memcpy(str, SERIAL_STR, SERIAL_LEN);
> + str[SERIAL_LEN] = 0;
> + } else {
> + /* No serial string. Resort to a 2-byte serial number. */
> + const u16 *SERIAL_NO = (const u16 *)0x8000004c;
> +
> + sprintf(str, "%05u", *SERIAL_NO);
> + }
> +
> + if (env_set("serial#", str))
> + return -1;
> +
> + return read_net_params();
> +}
> +
> +void enable_caches(void)
> +{
> + icache_enable();
> + dcache_enable();
> +}
[..]
> +++ b/include/configs/nport6600.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#ifndef _CONFIG_NPORT6600_H
> +#define _CONFIG_NPORT6600_H
> +
> +#include <linux/sizes.h>
> +
> +#define CFG_SYS_INIT_RAM_ADDR 0
> +#define CFG_SYS_INIT_RAM_SIZE SZ_64M
What code uses this? I suppose it is SoC-specific?
> +
> +#define __io
> +
> +#endif /* _CONFIG_NPORT6600_H */
> --
> 2.37.2
>
Regards,
Simon
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-08-02 21:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-31 18:43 [PATCH] arm: moxa: add nport6600 platform Sergei Antonov
2023-07-31 18:59 ` Tom Rini
2023-08-01 10:11 ` Sergei Antonov
2023-08-01 14:27 ` Tom Rini
2023-08-02 14:27 ` Sergei Antonov
2023-08-02 15:19 ` Tom Rini
2023-08-02 21:31 ` Simon Glass
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.