diff --git a/Documentation/boards.dox b/Documentation/boards.dox index ba332a76f..7fcba9cb4 100644 --- a/Documentation/boards.dox +++ b/Documentation/boards.dox @@ -51,6 +51,7 @@ MIPS type: @li @subpage dlink_dir_320 @li @subpage qemu_malta +@li @subpage rzx50 */ diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 345d9a2db..f28c21da9 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -67,6 +67,7 @@ machine-$(CONFIG_MACH_MIPS_BCM47XX) := bcm47xx board-$(CONFIG_BOARD_DLINK_DIR320) := dlink-dir-320 machine-$(CONFIG_MACH_MIPS_XBURST) := xburst +board-$(CONFIG_BOARD_RZX50) := rzx50 machdirs := $(patsubst %,arch/mips/mach-%/,$(machine-y)) diff --git a/arch/mips/boards/rzx50/Kconfig b/arch/mips/boards/rzx50/Kconfig new file mode 100644 index 000000000..38401aa69 --- /dev/null +++ b/arch/mips/boards/rzx50/Kconfig @@ -0,0 +1,6 @@ +if BOARD_RZX50 + +config BOARDINFO + default "Ritmix RZX-50" + +endif diff --git a/arch/mips/boards/rzx50/Makefile b/arch/mips/boards/rzx50/Makefile new file mode 100644 index 000000000..ff1a655af --- /dev/null +++ b/arch/mips/boards/rzx50/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_DRIVER_SERIAL_NS16550) += serial.o diff --git a/arch/mips/boards/rzx50/config.h b/arch/mips/boards/rzx50/config.h new file mode 100644 index 000000000..eb4ab083c --- /dev/null +++ b/arch/mips/boards/rzx50/config.h @@ -0,0 +1,19 @@ +/* + * 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. + * + * 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 + * + */ + +/* nothing special yet */ diff --git a/arch/mips/boards/rzx50/rzx50.dox b/arch/mips/boards/rzx50/rzx50.dox new file mode 100644 index 000000000..963473cb5 --- /dev/null +++ b/arch/mips/boards/rzx50/rzx50.dox @@ -0,0 +1,46 @@ +/** @page rzx50 Ritmix RZX-50 game console + +Ritmix RZX-50 is a portable game console for the Russian market. + +The portable game console has +@li Ingenic JZ4755 SoC; +@li 64 MiB SDRAM; +@li 4 GiB microSDHC card / 4 GiB NAND type Flash Memory; +@li RS232 serial interface (LV-TTL levels on the board!); +@li LCD display (480x272); +@li Video out interface; +@li 1xUSB interface; +@li buttons. + +The game console uses U-Boot 1.1.6 as bootloader. + +barebox-rzx50 mini-howto: + +1. Connect to the game console's UART (see. http://a320.emulate.su/2012/01/19/uart-na-ritmix-rzx-50/); + +2. Unblock U-Boot console (see. http://a320.emulate.su/2012/01/25/rzx-50-dostup-k-konsoli-u-boot/); Please note that U-Boot's Zmodem support does not work; + +3. Boot Ritmix linux and login; + +4. Upload barebox.bin via Zmodem +@verbatim + # cd /tmp + # rz +@endverbatim + +5. Write barebox to onboard flash +@verbatim + # dd if=barebox.bin of=/dev/mmcblk0 seek=1048576 bs=1 count=262144 +@endverbatim + +6. Reboot RZX-50, next in U-Boot console start barebox: +@verbatim + CETUS # msc read 0xa0800000 0x100000 0x40000; g a0800000 +@endverbatim + +Ritmix RZX-50 links: +@li http://www.ritmixrussia.ru/products/252/entertainment/game/rzx-50 +@li ftp://ftp.ingenic.cn/2soc/4755/JZ4755_ds.pdf +@li ftp://ftp.ingenic.cn/3sw/01linux/01loader/u-boot/u-boot-1.1.6-jz-20110719-r1728-add-jz4770.patch.bz2 + +*/ diff --git a/arch/mips/boards/rzx50/serial.c b/arch/mips/boards/rzx50/serial.c new file mode 100644 index 000000000..308cd18ea --- /dev/null +++ b/arch/mips/boards/rzx50/serial.c @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2012 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 + +#define JZ4750D_UART_SHIFT 2 + +#define ier (1 << JZ4750D_UART_SHIFT) +#define fcr (2 << JZ4750D_UART_SHIFT) + +static void jz4750d_serial_reg_write(unsigned int val, unsigned long base, + unsigned char reg_offset) +{ + switch (reg_offset) { + case fcr: + val |= 0x10; /* Enable uart module */ + break; + case ier: + val |= (val & 0x4) << 2; + break; + default: + break; + } + + writeb(val & 0xff, (void *)(base + reg_offset)); +} + +static struct NS16550_plat serial_plat = { + .clock = 12000000, + .shift = JZ4750D_UART_SHIFT, + .reg_write = &jz4750d_serial_reg_write, +}; + +static int rzx50_console_init(void) +{ + /* Register the serial port */ + add_ns16550_device(-1, UART1_BASE, 8 << JZ4750D_UART_SHIFT, + IORESOURCE_MEM_8BIT, &serial_plat); + + return 0; +} +console_initcall(rzx50_console_init); diff --git a/arch/mips/mach-xburst/Kconfig b/arch/mips/mach-xburst/Kconfig index 0306f2ee5..60e411cce 100644 --- a/arch/mips/mach-xburst/Kconfig +++ b/arch/mips/mach-xburst/Kconfig @@ -7,4 +7,15 @@ config ARCH_TEXT_BASE config CPU_JZ4755 bool +choice + prompt "Board type" + +config BOARD_RZX50 + bool "Ritmix RZX-50" + select CPU_JZ4755 + +endchoice + +source arch/mips/boards/rzx50/Kconfig + endif diff --git a/arch/mips/mach-xburst/include/mach/debug_ll.h b/arch/mips/mach-xburst/include/mach/debug_ll.h index 90f65285b..c3dbaa2b6 100644 --- a/arch/mips/mach-xburst/include/mach/debug_ll.h +++ b/arch/mips/mach-xburst/include/mach/debug_ll.h @@ -24,6 +24,10 @@ /** @file * This File contains declaration for early output support */ -#include +#ifdef CONFIG_BOARD_RZX50 +#include +#endif + +#include #endif /* __MACH_XBURST_DEBUG_LL__ */ diff --git a/arch/mips/mach-xburst/mach-xburst.dox b/arch/mips/mach-xburst/mach-xburst.dox index 84ae2211c..a5e524d25 100644 --- a/arch/mips/mach-xburst/mach-xburst.dox +++ b/arch/mips/mach-xburst/mach-xburst.dox @@ -2,4 +2,6 @@ @section xburst_boards XBurst-based boards +@li @subpage rzx50 + */