On 2021-09-18 00:37, Peter Rosin wrote: > Hi! > > I have old boards that I'm trying to get up to current > revisions of various pieces of software, and I'm running > into a couple of problems with barebox. After bisecting > and sorting though git history for a couple of days, > these are my findings... I meant to mention that I'm using this extra patch for my board. As you can see, it's been a couple of years, and it is not at all unlikely that the root cause is in these files, and that there has been changes in the other parts of the sama5d3 code that I need to pick up. I will dig into updating these files, and check if that help. Cheers, Peter >From 4dcf8d62b4f9a7383e93f0967c57742044c18b3d Mon Sep 17 00:00:00 2001 From: Peter Rosin <peda@xxxxxxxxxx> Date: Wed, 7 Jun 2017 18:58:50 +0200 Subject: [PATCH] tse850: New board, very similar to sama5d31ek. Signed-off-by: Peter Rosin <peda@xxxxxxxxxx> --- arch/arm/boards/Makefile | 1 + arch/arm/boards/tse850/Makefile | 1 + arch/arm/boards/tse850/env/config | 41 +++++++++ arch/arm/boards/tse850/init.c | 139 ++++++++++++++++++++++++++++++ arch/arm/configs/tse850_defconfig | 78 +++++++++++++++++ arch/arm/mach-at91/Kconfig | 5 ++ 6 files changed, 265 insertions(+) create mode 100644 arch/arm/boards/tse850/Makefile create mode 100644 arch/arm/boards/tse850/env/config create mode 100644 arch/arm/boards/tse850/init.c create mode 100644 arch/arm/configs/tse850_defconfig diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile index 5aac64fce584..9219c8cd407a 100644 --- a/arch/arm/boards/Makefile +++ b/arch/arm/boards/Makefile @@ -148,6 +148,7 @@ obj-$(CONFIG_MACH_TOSHIBA_AC100) += toshiba-ac100/ obj-$(CONFIG_MACH_TQMA53) += tqma53/ obj-$(CONFIG_MACH_TQMA6X) += tqma6x/ obj-$(CONFIG_MACH_TURRIS_OMNIA) += turris-omnia/ +obj-$(CONFIG_MACH_TSE850) += tse850/ obj-$(CONFIG_MACH_TX25) += karo-tx25/ obj-$(CONFIG_MACH_TX28) += karo-tx28/ obj-$(CONFIG_MACH_TX53) += karo-tx53/ diff --git a/arch/arm/boards/tse850/Makefile b/arch/arm/boards/tse850/Makefile new file mode 100644 index 000000000000..eb072c016176 --- /dev/null +++ b/arch/arm/boards/tse850/Makefile @@ -0,0 +1 @@ +obj-y += init.o diff --git a/arch/arm/boards/tse850/env/config b/arch/arm/boards/tse850/env/config new file mode 100644 index 000000000000..52befe0dd93e --- /dev/null +++ b/arch/arm/boards/tse850/env/config @@ -0,0 +1,41 @@ +#!/bin/sh + +# use 'none' if you want to skip kernel ip autoconfiguration +ip=none + +# or set your networking parameters here +#eth0.ipaddr=a.b.c.d +#eth0.netmask=a.b.c.d +#eth0.gateway=a.b.c.d +#eth0.serverip=a.b.c.d + +# can be either 'nfs', 'tftp', 'nor' or 'nand' +kernel_loc=nand +# can be either 'net', 'nor', 'nand' or 'initrd' +rootfs_loc=nand +# can be either 'nfs', 'tftp', 'nand' or empty +oftree_loc=nand + +# can be either 'jffs2' or 'ubifs' +rootfs_type=ubifs +rootfsimage=root.$rootfs_type +ubiroot=rootfs + +# The image type of the kernel. Can be uimage, zimage, raw, or raw_lzo +kernelimage=zImage +#kernelimage=uImage +#kernelimage=Image +#kernelimage=Image.lzo + +nand_device=atmel_nand +nand_parts="256k(at91bootstrap),384k(barebox),256k@768k(bareboxenv),256k(bareboxenv2),128k@1536k(oftree),5M@2M(kernel),248M@8M(rootfs),-@256M(ovlfs)" +rootfs_mtdblock_nand=6 + +m25p80_parts="64k(bootstrap),384k(barebox),256k(bareboxenv),256k(bareboxenv2),128k(oftree),-(updater)" + +autoboot_timeout=1 + +bootargs="console=ttyS0,115200 rw oops=panic panic=30" + +# set a fancy prompt (if support is compiled in) +PS1="\e[1;32mbarebox@\e[1;31m\h:\w\e[0m\n# " diff --git a/arch/arm/boards/tse850/init.c b/arch/arm/boards/tse850/init.c new file mode 100644 index 000000000000..1166b5067f93 --- /dev/null +++ b/arch/arm/boards/tse850/init.c @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> + * + * 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. + * + * + */ + +#include <common.h> +#include <net.h> +#include <init.h> +#include <environment.h> +#include <asm/armlinux.h> +#include <generated/mach-types.h> +#include <partition.h> +#include <fs.h> +#include <fcntl.h> +#include <io.h> +#include <asm/hardware.h> +#include <nand.h> +#include <sizes.h> +#include <linux/mtd/nand.h> +#include <mach/board.h> +#include <mach/at91sam9_smc.h> +#include <mach/at91sam9_smc.h> +#include <gpio.h> +#include <mach/io.h> +#include <mach/at91_pmc.h> +#include <mach/at91_rstc.h> +#include <mach/at91sam9x5_matrix.h> +#include <input/qt1070.h> +#include <readkey.h> +#include <poller.h> +#include <linux/w1-gpio.h> +#include <w1_mac_address.h> +#include <spi/spi.h> +#include <linux/clk.h> +#include <linux/phy.h> +#include <linux/micrel_phy.h> + +#if defined(CONFIG_NAND_ATMEL) +static struct atmel_nand_data nand_pdata = { + .ale = 21, + .cle = 22, + .det_pin = -EINVAL, + .rdy_pin = -EINVAL, + .enable_pin = -EINVAL, + .ecc_mode = NAND_ECC_HW, + .pmecc_sector_size = 512, + .pmecc_corr_cap = 4, +#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16) + .bus_width_16 = 1, +#endif + .on_flash_bbt = 1, +}; + +static struct sam9_smc_config cm_nand_smc_config = { + .ncs_read_setup = 0, + .nrd_setup = 1, + .ncs_write_setup = 0, + .nwe_setup = 1, + + .ncs_read_pulse = 6, + .nrd_pulse = 4, + .ncs_write_pulse = 5, + .nwe_pulse = 3, + + .read_cycle = 6, + .write_cycle = 5, + + .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE, + .tdf_cycles = 1, +}; + +static void tse_850_add_device_nand(void) +{ + struct clk *clk = clk_get(NULL, "smc_clk"); + + clk_enable(clk); + + /* setup bus-width (8 or 16) */ + if (nand_pdata.bus_width_16) + cm_nand_smc_config.mode |= AT91_SMC_DBW_16; + else + cm_nand_smc_config.mode |= AT91_SMC_DBW_8; + + /* configure chip-select 3 (NAND) */ + sam9_smc_configure(0, 3, &cm_nand_smc_config); + + at91_add_device_nand(&nand_pdata); +} +#else +static void tse_850_add_device_nand(void) {} +#endif + +static int at91_tse_850_devices_init(void) +{ + tse_850_add_device_nand(); + + armlinux_set_bootparams((void *)(SAMA5_DDRCS + 0x100)); + + devfs_add_partition("nand0", 0x00000, SZ_256K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw"); + dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap"); + devfs_add_partition("nand0", SZ_256K, SZ_256K + SZ_128K, DEVFS_PARTITION_FIXED, "self_raw"); + dev_add_bb_dev("self_raw", "self0"); + devfs_add_partition("nand0", SZ_512K + SZ_256K, SZ_256K, DEVFS_PARTITION_FIXED, "env_raw"); + dev_add_bb_dev("env_raw", "env0"); + devfs_add_partition("nand0", SZ_1M, SZ_256K, DEVFS_PARTITION_FIXED, "env_raw1"); + dev_add_bb_dev("env_raw1", "env1"); + + return 0; +} +device_initcall(at91_tse_850_devices_init); + +static int at91_tse_850_console_init(void) +{ + barebox_set_model("Axentia TSE-850"); + barebox_set_hostname("tse"); + + at91_register_uart(0, 0); + at91_register_uart(2, 0); + return 0; +} +console_initcall(at91_tse_850_console_init); + +static int at91_tse_850_main_clock(void) +{ + at91_set_main_clock(12000000); + return 0; +} +pure_initcall(at91_tse_850_main_clock); diff --git a/arch/arm/configs/tse850_defconfig b/arch/arm/configs/tse850_defconfig new file mode 100644 index 000000000000..76611a8b18ad --- /dev/null +++ b/arch/arm/configs/tse850_defconfig @@ -0,0 +1,78 @@ +CONFIG_ARCH_SAMA5D3=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x60000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_TEXT_BASE=0x26f00000 +CONFIG_MALLOC_SIZE=0xA00000 +CONFIG_EXPERIMENTAL=y +CONFIG_MALLOC_TLSF=y +CONFIG_PROMPT="TSE-850:" +CONFIG_LONGHELP=y +CONFIG_GLOB=y +CONFIG_PROMPT_HUSH_PS2="y" +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_CONSOLE_ACTIVATE_ALL=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y +CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/tse850/env" +CONFIG_POLLER=y +CONFIG_RESET_SOURCE=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_SAVEENV=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_TFTP=y +CONFIG_CMD_FILETYPE=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_LOADB=y +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_FLASH=y +CONFIG_CMD_BOOTM_SHOW_TYPE=y +CONFIG_CMD_BOOTM_VERBOSE=y +CONFIG_CMD_BOOTM_INITRD=y +CONFIG_CMD_BOOTM_OFTREE=y +CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y +CONFIG_CMD_UIMAGE=y +# CONFIG_CMD_BOOTU is not set +CONFIG_CMD_RESET=y +CONFIG_CMD_GO=y +CONFIG_CMD_OFTREE=y +CONFIG_CMD_MTEST=y +CONFIG_CMD_MTEST_ALTERNATIVE=y +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_PARTITION=y +CONFIG_CMD_WD=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_MIITOOL=y +CONFIG_NET=y +CONFIG_NET_DHCP=y +CONFIG_NET_NFS=y +CONFIG_NET_PING=y +CONFIG_NET_NETCONSOLE=y +CONFIG_MICREL_PHY=y +CONFIG_DRIVER_NET_MACB=y +# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_SOFT is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +CONFIG_NAND_ATMEL_PMECC=y +CONFIG_UBI=y +CONFIG_DISK=y +CONFIG_DISK_WRITE=y +CONFIG_WATCHDOG=y +CONFIG_FS_EXT4=y +CONFIG_FS_TFTP=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y +CONFIG_ZLIB=y diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 290178706a40..6e3d33694c05 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig @@ -539,6 +539,11 @@ config MACH_SAMA5D3_XPLAINED help Select this if you are using Atmel's SAMA5D3_XPLAINED Evaluation Kit. +config MACH_TSE850 + bool "Axentia TSE-850" + help + Select this if you are using Axentia's TSE-850. + endchoice endif -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox