configs: add defconfig for TS-5x00 SBCs
This patch adds support for the TS-5x00 serie of Technologic Systems x86-based Single Board Computers, featuring an AMD Elan520 processor. http://wiki.embeddedarm.com/wiki/#AMD [Peter: explicitly set arch/variant in defconfig, strip trailing spaces] Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
1d3696bd17
commit
483e3bef47
9
board/ts/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg
Normal file
9
board/ts/ts5x00/fs-overlay/boot/syslinux/syslinux.cfg
Normal file
|
@ -0,0 +1,9 @@
|
|||
SERIAL 1 115200
|
||||
CONSOLE 0
|
||||
|
||||
DEFAULT linux
|
||||
|
||||
LABEL linux
|
||||
SAY Now booting the kernel from SYSLINUX...
|
||||
LINUX /boot/bzImage
|
||||
APPEND console=ttyS1,115200n8 root=/dev/sda1 rootfstype=ext4 rw
|
113
board/ts/ts5x00/linux-3.14.config
Normal file
113
board/ts/ts5x00/linux-3.14.config
Normal file
|
@ -0,0 +1,113 @@
|
|||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_X86_EXTENDED_PLATFORM is not set
|
||||
CONFIG_MELAN=y
|
||||
CONFIG_X86_GENERIC=y
|
||||
CONFIG_X86_REBOOTFIXUPS=y
|
||||
CONFIG_NOHIGHMEM=y
|
||||
# CONFIG_COMPACTION is not set
|
||||
# CONFIG_BOUNCE is not set
|
||||
# CONFIG_CROSS_MEMORY_ATTACH is not set
|
||||
# CONFIG_RELOCATABLE is not set
|
||||
# CONFIG_SUSPEND is not set
|
||||
# CONFIG_ACPI is not set
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_TS5500=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
# CONFIG_BLK_DEV is not set
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
CONFIG_ATA=y
|
||||
# CONFIG_ATA_VERBOSE_ERROR is not set
|
||||
# CONFIG_SATA_PMP is not set
|
||||
CONFIG_ATA_GENERIC=y
|
||||
CONFIG_PATA_LEGACY=y
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NET_CORE is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_NET_VENDOR_ADAPTEC is not set
|
||||
# CONFIG_NET_VENDOR_ALTEON is not set
|
||||
# CONFIG_NET_VENDOR_AMD is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_ATHEROS is not set
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_BROCADE is not set
|
||||
# CONFIG_NET_VENDOR_CHELSIO is not set
|
||||
# CONFIG_NET_VENDOR_CISCO is not set
|
||||
CONFIG_NET_TULIP=y
|
||||
CONFIG_DM9102=y
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_EXAR is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
# CONFIG_NET_VENDOR_MICREL is not set
|
||||
# CONFIG_NET_VENDOR_MYRI is not set
|
||||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
# CONFIG_NET_VENDOR_NVIDIA is not set
|
||||
# CONFIG_NET_VENDOR_OKI is not set
|
||||
# CONFIG_NET_PACKET_ENGINE is not set
|
||||
# CONFIG_NET_VENDOR_QLOGIC is not set
|
||||
# CONFIG_NET_VENDOR_REALTEK is not set
|
||||
# CONFIG_NET_VENDOR_RDC is not set
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
# CONFIG_NET_VENDOR_SILAN is not set
|
||||
# CONFIG_NET_VENDOR_SIS is not set
|
||||
# CONFIG_NET_VENDOR_SMSC is not set
|
||||
# CONFIG_NET_VENDOR_STMICRO is not set
|
||||
# CONFIG_NET_VENDOR_SUN is not set
|
||||
# CONFIG_NET_VENDOR_TEHUTI is not set
|
||||
# CONFIG_NET_VENDOR_TI is not set
|
||||
# CONFIG_NET_VENDOR_VIA is not set
|
||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_DAVICOM_PHY=y
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_TS5500=y
|
||||
CONFIG_SENSORS_MAX197=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_SC520_WDT=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_SERIAL=y
|
||||
CONFIG_USB_SERIAL_FTDI_SIO=y
|
||||
CONFIG_USB_SERIAL_PL2303=y
|
||||
# CONFIG_X86_PLATFORM_DEVICES is not set
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
# CONFIG_DMIID is not set
|
||||
CONFIG_EXT4_FS=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY_USER is not set
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_850=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_ISO8859_15=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_XZ_DEC=y
|
|
@ -0,0 +1,117 @@
|
|||
From 510acd057785ff52bfdfed6360a44a42f44e078f Mon Sep 17 00:00:00 2001
|
||||
From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
|
||||
Date: Mon, 7 Jul 2014 15:56:11 -0400
|
||||
Subject: [PATCH] x86: (ts5500) add board support for TS-5400
|
||||
|
||||
This patch extends the TS-5500 board support to identify the compatible
|
||||
TS-5400 Single Board Computer (ID 0x40).
|
||||
|
||||
It also adds a new "name" sysfs attribute for more human readable
|
||||
identification, actually printing "TS-5500" or "TS-5400".
|
||||
|
||||
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
|
||||
---
|
||||
arch/x86/platform/ts5500/ts5500.c | 34 +++++++++++++++++++++++++++-------
|
||||
1 file changed, 27 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/platform/ts5500/ts5500.c b/arch/x86/platform/ts5500/ts5500.c
|
||||
index 9471b94..127fce2 100644
|
||||
--- a/arch/x86/platform/ts5500/ts5500.c
|
||||
+++ b/arch/x86/platform/ts5500/ts5500.c
|
||||
@@ -31,7 +31,6 @@
|
||||
|
||||
/* Product code register */
|
||||
#define TS5500_PRODUCT_CODE_ADDR 0x74
|
||||
-#define TS5500_PRODUCT_CODE 0x60 /* TS-5500 product code */
|
||||
|
||||
/* SRAM/RS-485/ADC options, and RS-485 RTS/Automatic RS-485 flags register */
|
||||
#define TS5500_SRAM_RS485_ADC_ADDR 0x75
|
||||
@@ -64,9 +63,17 @@
|
||||
#define TS5500_ADC_CONV_MSB_ADDR 0x197 /* MSB register */
|
||||
#define TS5500_ADC_CONV_DELAY 12 /* usec */
|
||||
|
||||
+static const struct ts5x00_info {
|
||||
+ const int id;
|
||||
+ const char * const name;
|
||||
+} ts5x00_info[] = {
|
||||
+ { 0x40, "TS-5400" },
|
||||
+ { 0x60, "TS-5500" },
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* struct ts5500_sbc - TS-5500 board description
|
||||
- * @id: Board product ID.
|
||||
+ * @info: Board identification.
|
||||
* @sram: Flag for SRAM option.
|
||||
* @rs485: Flag for RS-485 option.
|
||||
* @adc: Flag for Analog/Digital converter option.
|
||||
@@ -75,7 +82,7 @@
|
||||
* @jumpers: Bitfield for jumpers' state.
|
||||
*/
|
||||
struct ts5500_sbc {
|
||||
- int id;
|
||||
+ const struct ts5x00_info *info;
|
||||
bool sram;
|
||||
bool rs485;
|
||||
bool adc;
|
||||
@@ -117,18 +124,21 @@ static int __init ts5500_check_signature(void)
|
||||
static int __init ts5500_detect_config(struct ts5500_sbc *sbc)
|
||||
{
|
||||
u8 tmp;
|
||||
+ int i;
|
||||
int ret = 0;
|
||||
|
||||
if (!request_region(TS5500_PRODUCT_CODE_ADDR, 4, "ts5500"))
|
||||
return -EBUSY;
|
||||
|
||||
tmp = inb(TS5500_PRODUCT_CODE_ADDR);
|
||||
- if (tmp != TS5500_PRODUCT_CODE) {
|
||||
- pr_err("This platform is not a TS-5500 (found ID 0x%x)\n", tmp);
|
||||
+ for (i = 0; i < ARRAY_SIZE(ts5x00_info) && !sbc->info; ++i)
|
||||
+ if (tmp == ts5x00_info[i].id)
|
||||
+ sbc->info = &ts5x00_info[i];
|
||||
+ if (!sbc->info) {
|
||||
+ pr_err("Not a known TS-5x00 platform (found ID 0x%x)\n", tmp);
|
||||
ret = -ENODEV;
|
||||
goto cleanup;
|
||||
}
|
||||
- sbc->id = tmp;
|
||||
|
||||
tmp = inb(TS5500_SRAM_RS485_ADC_ADDR);
|
||||
sbc->sram = tmp & TS5500_SRAM;
|
||||
@@ -152,7 +162,15 @@ static ssize_t ts5500_show_id(struct device *dev,
|
||||
{
|
||||
struct ts5500_sbc *sbc = dev_get_drvdata(dev);
|
||||
|
||||
- return sprintf(buf, "0x%.2x\n", sbc->id);
|
||||
+ return sprintf(buf, "0x%.2x\n", sbc->info->id);
|
||||
+}
|
||||
+
|
||||
+static ssize_t ts5500_show_name(struct device *dev,
|
||||
+ struct device_attribute *attr, char *buf)
|
||||
+{
|
||||
+ struct ts5500_sbc *sbc = dev_get_drvdata(dev);
|
||||
+
|
||||
+ return sprintf(buf, "%s\n", sbc->info->name);
|
||||
}
|
||||
|
||||
static ssize_t ts5500_show_jumpers(struct device *dev,
|
||||
@@ -180,6 +198,7 @@ TS5500_SHOW(ereset)
|
||||
TS5500_SHOW(itr)
|
||||
|
||||
static DEVICE_ATTR(id, S_IRUGO, ts5500_show_id, NULL);
|
||||
+static DEVICE_ATTR(name, S_IRUGO, ts5500_show_name, NULL);
|
||||
static DEVICE_ATTR(jumpers, S_IRUGO, ts5500_show_jumpers, NULL);
|
||||
static DEVICE_ATTR(sram, S_IRUGO, ts5500_show_sram, NULL);
|
||||
static DEVICE_ATTR(rs485, S_IRUGO, ts5500_show_rs485, NULL);
|
||||
@@ -189,6 +208,7 @@ static DEVICE_ATTR(itr, S_IRUGO, ts5500_show_itr, NULL);
|
||||
|
||||
static struct attribute *ts5500_attributes[] = {
|
||||
&dev_attr_id.attr,
|
||||
+ &dev_attr_name.attr,
|
||||
&dev_attr_jumpers.attr,
|
||||
&dev_attr_sram.attr,
|
||||
&dev_attr_rs485.attr,
|
||||
--
|
||||
1.9.1
|
||||
|
51
board/ts/ts5x00/readme.txt
Normal file
51
board/ts/ts5x00/readme.txt
Normal file
|
@ -0,0 +1,51 @@
|
|||
Technologic Systems TS-5x00 SBCs
|
||||
================================
|
||||
|
||||
This document explains how to set up a basic Buildroot system for the
|
||||
Technologic Systems TS-5x00 serie of x86-based Single Board Computers.
|
||||
|
||||
TS-5x00 Single Board Computers are based on the AMD Elan520 processor. For more
|
||||
information please have a look at http://wiki.embeddedarm.com/wiki/#AMD
|
||||
|
||||
The kernel configuration works for any AMD Elan520-based SBCs, but the support
|
||||
is enhanced for the TS-5500 and TS-5400 models (on-board devices registration
|
||||
and additional sysfs attributes under /sys/devices/platform/).
|
||||
|
||||
To build the default configuration you only have to:
|
||||
|
||||
$ make ts5x00_defconfig
|
||||
$ make
|
||||
|
||||
You will need a Compact Flash card of sufficient size and the first or only
|
||||
partition configured as Linux type, with the bootable flag.
|
||||
|
||||
You can transfer the system on the partition then optionally resize it with:
|
||||
|
||||
# dd if=output/images/rootfs.ext4 of=/dev/sdX1
|
||||
# resize2fs /dev/sdX1
|
||||
|
||||
Or you can just extract the root filesystem to the partition with:
|
||||
|
||||
# mount /dev/sdX1 /mnt
|
||||
# tar -pxf output/images/rootfs.tar -C /mnt
|
||||
# umount /mnt
|
||||
|
||||
To install the bootloader, you will need to copy the MBR:
|
||||
|
||||
# cat output/images/syslinux/mbr.bin > /dev/sdX
|
||||
|
||||
Then install SYSLINUX in the mounted partition:
|
||||
|
||||
# mount /dev/sdX1 /mnt
|
||||
# output/host/sbin/extlinux --install /mnt/boot/syslinux
|
||||
# umount /mnt
|
||||
|
||||
IMPORTANT: In order for the board to boot the Compact Flash with a recent
|
||||
config, the BIOS must use Logical Block Addressing (LBA). You can do it by
|
||||
choosing "Ide 0: AUTOCONFIG, LBA" under "IDE DRIVE GEOMETRY" in the "Basic CMOS
|
||||
Configuration" screen. For details about the CMOS setup, please see:
|
||||
http://wiki.embeddedarm.com/wiki/TS-5500#System_BIOS_Setup_Screens
|
||||
|
||||
Connect a terminal program to the rs232 connector marked "COM2"
|
||||
with baudrate set to 115200, insert the Compact Flash card into the socket,
|
||||
power up the board, and enjoy.
|
15
configs/ts5x00_defconfig
Normal file
15
configs/ts5x00_defconfig
Normal file
|
@ -0,0 +1,15 @@
|
|||
BR2_i386=y
|
||||
BR2_x86_i586=y
|
||||
BR2_KERNEL_HEADERS_3_14=y
|
||||
BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
|
||||
BR2_ROOTFS_OVERLAY="board/ts/ts5x00/fs-overlay"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
|
||||
BR2_LINUX_KERNEL_PATCH="board/ts/ts5x00/patches/linux/"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/ts/ts5x00/linux-3.14.config"
|
||||
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
||||
BR2_TARGET_ROOTFS_EXT2=y
|
||||
BR2_TARGET_ROOTFS_EXT2_4=y
|
||||
BR2_TARGET_SYSLINUX=y
|
||||
BR2_TARGET_SYSLINUX_MBR=y
|
Loading…
Reference in a new issue