From f8e83c05d9dc9757009c0c848a21493e37f5b5f6 Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Mon, 28 May 2012 12:12:33 +0400 Subject: [PATCH] ARM: Tegra: add Toshiba AC100 support Signed-off-by: Antony Pavlov Signed-off-by: Sascha Hauer --- Documentation/boards.dox | 1 + arch/arm/Makefile | 1 + arch/arm/boards/toshiba-ac100/Kconfig | 9 ++++ arch/arm/boards/toshiba-ac100/Makefile | 2 + arch/arm/boards/toshiba-ac100/board.c | 34 +++++++++++++++ arch/arm/boards/toshiba-ac100/config.h | 5 +++ arch/arm/boards/toshiba-ac100/serial.c | 43 +++++++++++++++++++ .../boards/toshiba-ac100/toshiba-ac100.dox | 37 ++++++++++++++++ arch/arm/mach-tegra/Kconfig | 12 ++++++ 9 files changed, 144 insertions(+) create mode 100644 arch/arm/boards/toshiba-ac100/Kconfig create mode 100644 arch/arm/boards/toshiba-ac100/Makefile create mode 100644 arch/arm/boards/toshiba-ac100/board.c create mode 100644 arch/arm/boards/toshiba-ac100/config.h create mode 100644 arch/arm/boards/toshiba-ac100/serial.c create mode 100644 arch/arm/boards/toshiba-ac100/toshiba-ac100.dox diff --git a/Documentation/boards.dox b/Documentation/boards.dox index 7fcba9cb4..5241f5b44 100644 --- a/Documentation/boards.dox +++ b/Documentation/boards.dox @@ -37,6 +37,7 @@ ARM type: @li @subpage edb9315a @li @subpage board_cupid @li @subpage phycard-a-l1 +@li @subpage toshiba-ac100 Blackfin type: diff --git a/arch/arm/Makefile b/arch/arm/Makefile index ddff124dc..2407b6966 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -134,6 +134,7 @@ board-$(CONFIG_MACH_TX25) := karo-tx25 board-$(CONFIG_MACH_TQMA53) := tqma53 board-$(CONFIG_MACH_TX51) := karo-tx51 board-$(CONFIG_MACH_MX6Q_ARM2) := freescale-mx6-arm2 +board-$(CONFIG_MACH_TOSHIBA_AC100) := toshiba-ac100 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) diff --git a/arch/arm/boards/toshiba-ac100/Kconfig b/arch/arm/boards/toshiba-ac100/Kconfig new file mode 100644 index 000000000..abba2cc58 --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/Kconfig @@ -0,0 +1,9 @@ +if MACH_TOSHIBA_AC100 + +config ARCH_TEXT_BASE + hex + default 0x01000000 + +config BOARDINFO + default "Toshiba AC100 (Tegra2)" +endif diff --git a/arch/arm/boards/toshiba-ac100/Makefile b/arch/arm/boards/toshiba-ac100/Makefile new file mode 100644 index 000000000..9e1476311 --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/Makefile @@ -0,0 +1,2 @@ +obj-y += board.o +obj-$(CONFIG_DRIVER_SERIAL_NS16550) += serial.o diff --git a/arch/arm/boards/toshiba-ac100/board.c b/arch/arm/boards/toshiba-ac100/board.c new file mode 100644 index 000000000..e3a5ebabe --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/board.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2011 Antony Pavlov + * + * This file is part of barebox. + * See file CREDITS for list of people who contributed to this project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include + +static int ac100_mem_init(void) +{ + arm_add_mem_device("ram0", 0x0, SZ_512M); + + return 0; +} +mem_initcall(ac100_mem_init); diff --git a/arch/arm/boards/toshiba-ac100/config.h b/arch/arm/boards/toshiba-ac100/config.h new file mode 100644 index 000000000..25bb18f78 --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/config.h @@ -0,0 +1,5 @@ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#endif /* __CONFIG_H */ diff --git a/arch/arm/boards/toshiba-ac100/serial.c b/arch/arm/boards/toshiba-ac100/serial.c new file mode 100644 index 000000000..2ed0e3901 --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/serial.c @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2011 Antony Pavlov + * + * This file is part of barebox. + * See file CREDITS for list of people who contributed to this project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static struct NS16550_plat serial_plat = { + .clock = 0x75 * 115200 * 16 /* MODE_X_DIV */, + .shift = 2, +}; + +static int ac100_serial_console_init(void) +{ + /* Register the serial port */ + add_ns16550_device(-1, TEGRA_UARTA_BASE, 8 << serial_plat.shift, + IORESOURCE_MEM_8BIT, &serial_plat); + + return 0; +} +console_initcall(ac100_serial_console_init); diff --git a/arch/arm/boards/toshiba-ac100/toshiba-ac100.dox b/arch/arm/boards/toshiba-ac100/toshiba-ac100.dox new file mode 100644 index 000000000..7c50f3c1d --- /dev/null +++ b/arch/arm/boards/toshiba-ac100/toshiba-ac100.dox @@ -0,0 +1,37 @@ +/** @page toshiba-ac100 Toshiba AC100 + +Toshiba AC100 is a Tegra2-based netbook. + +The netbook has +@li NVidia Tegra 250 SoC; +@li 512 MiB DDR2 RAM; +@li 8 GiB internal e-MMC Flash Memory (some models have 32 GiB); +@li RS232 serial interface (LV-TTL levels on the board!); +@li SD card slot; +@li 2xUSB interface (miniUSB-B and USB-A connectors); +@li 10" LCD display (1024x600); +@li HDMI-interface; +@li touchpad and keyboard connected via I2C; the ENE KB926QF keyboard controller is used; +@li web camera; +@li some models have 3G-modem. + +U-Boot master branch is working on AC100, but there's no support for the keyboard or the display. + +barebox-toshiba-ac100 mini-howto: + +1. Connect to the netbook's UART (see http://pecourt.ovh.org/wiki-tegra/doku.php?id=hardware); + +2. Start U-Boot loader. See http://ac100.grandou.net/uboot and http://ac100.grandou.net/swarren_brain_dump for details. + +3. If you use U-Boot with turned on display support, then switch to serial console: +@verbatim + Tegra2 (ac100) # setenv stdout serial +@endverbatim + +4. Upload barebox.bin via Ymodem and start it: +@verbatim + Tegra2 (ac100) # loady 0x01f00000 + Tegra2 (ac100) # go 0x01f00000 +@endverbatim + +*/ diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index b0cc3cdd0..eda786baf 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -4,4 +4,16 @@ config ARCH_TEXT_BASE hex default 0x31fc0000 +choice + prompt "Tegra Board Type" + +config MACH_TOSHIBA_AC100 + bool "Toshiba AC100" + help + Say Y here if you are using Toshiba AC100 smartbook. + +endchoice + +source arch/arm/boards/toshiba-ac100/Kconfig + endif