mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 23:39:41 +02:00
some cleanup about xburst target
- make zImage compile fine - set the ip addr to 192.168.254.101 - add more tty - format nand partition to 3 - cleanup keyboard - cleanup gmp940b driver - add color font patch, use setfont2 in userspace - add FPU in config, change font to 6x11 - add default CMDLINE, which is for zImage Signed-off-by: Xiangfu Liu <xiangfu@sharism.cc>
This commit is contained in:
parent
0e584f25fb
commit
89b0b97506
@ -18,7 +18,7 @@ DEVICE_TYPE=other
|
|||||||
|
|
||||||
include $(INCLUDE_DIR)/target.mk
|
include $(INCLUDE_DIR)/target.mk
|
||||||
|
|
||||||
KERNELNAME:=uImage
|
KERNELNAME:=uImage zImage
|
||||||
|
|
||||||
define Target/Description
|
define Target/Description
|
||||||
Build firmware images for XBurst JZ47x0 based boards.
|
Build firmware images for XBurst JZ47x0 based boards.
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
config mount
|
|
||||||
option target /card
|
|
||||||
option device /dev/mmcblk0p1
|
|
||||||
option fstype auto
|
|
||||||
option options rw,sync
|
|
||||||
option enabled 1
|
|
@ -9,5 +9,7 @@ config interface loopback
|
|||||||
config interface lan
|
config interface lan
|
||||||
option ifname usb0
|
option ifname usb0
|
||||||
option proto static
|
option proto static
|
||||||
option ipaddr 192.168.1.1
|
option ipaddr 192.168.254.101
|
||||||
option netmask 255.255.255.0
|
option netmask 255.255.255.0
|
||||||
|
option gateway 192.168.254.100
|
||||||
|
option dns 208.67.222.222
|
||||||
|
8
target/linux/xburst/base-files/etc/inittab
Normal file
8
target/linux/xburst/base-files/etc/inittab
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
::sysinit:/etc/init.d/rcS S boot
|
||||||
|
::shutdown:/etc/init.d/rcS K stop
|
||||||
|
tts/0::askfirst:/bin/ash --login
|
||||||
|
ttyS0::askfirst:/bin/ash --login
|
||||||
|
tty1::respawn:/bin/ash --login
|
||||||
|
tty2::askfirst:/bin/ash --login
|
||||||
|
tty3::askfirst:/bin/ash --login
|
||||||
|
tty4::askfirst:/bin/ash --login
|
5
target/linux/xburst/base-files/etc/opkg.conf
Normal file
5
target/linux/xburst/base-files/etc/opkg.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
src/gz snapshots http://downloads.qi-hardware.com/software/packages/openwrt/xburst/latest
|
||||||
|
dest root /
|
||||||
|
dest ram /tmp
|
||||||
|
lists_dir ext /var/opkg-lists
|
||||||
|
option overlay_root /overlay
|
@ -94,7 +94,8 @@ CONFIG_FORCE_MAX_ZONEORDER=12
|
|||||||
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
|
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
|
||||||
# CONFIG_FRAMEBUFFER_CONSOLE is not set
|
# CONFIG_FRAMEBUFFER_CONSOLE is not set
|
||||||
CONFIG_FREEZER=y
|
CONFIG_FREEZER=y
|
||||||
# CONFIG_FSNOTIFY is not set
|
CONFIG_INOTIFY=y
|
||||||
|
CONFIG_INOTIFY_USER=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
CONFIG_GENERIC_CMOS_UPDATE=y
|
CONFIG_GENERIC_CMOS_UPDATE=y
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* linux/include/asm-mips/mach-jz4740/jz4740.h
|
* arch/mips/include/asm/mach-jz4740/jz4740.h
|
||||||
*
|
|
||||||
* JZ4740 common definition.
|
* JZ4740 common definition.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
|
* Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
|
||||||
*
|
|
||||||
* Author: <lhhuang@ingenic.cn>
|
* Author: <lhhuang@ingenic.cn>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -18,7 +16,7 @@
|
|||||||
#include <asm/mach-jz4740/regs.h>
|
#include <asm/mach-jz4740/regs.h>
|
||||||
#include <asm/mach-jz4740/dma.h>
|
#include <asm/mach-jz4740/dma.h>
|
||||||
|
|
||||||
/*------------------------------------------------------------------
|
/*
|
||||||
* Platform definitions
|
* Platform definitions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -26,10 +24,4 @@
|
|||||||
#include <asm/mach-jz4740/board-qi_lb60.h>
|
#include <asm/mach-jz4740/board-qi_lb60.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*------------------------------------------------------------------
|
|
||||||
* Follows are related to platform definitions
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <asm/mach-jz4740/serial.h>
|
|
||||||
|
|
||||||
#endif /* __ASM_JZ4740_H__ */
|
#endif /* __ASM_JZ4740_H__ */
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
* linux/include/asm-mips/mach-jz4740/serial.h
|
|
||||||
*
|
|
||||||
* Ingenic's JZ4740 common include.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006 - 2007 Ingenic Semiconductor Inc.
|
|
||||||
*
|
|
||||||
* Author: <yliu@ingenic.cn>
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __ASM_BOARD_SERIAL_H__
|
|
||||||
#define __ASM_BOARD_SERIAL_H__
|
|
||||||
|
|
||||||
#ifndef CONFIG_SERIAL_MANY_PORTS
|
|
||||||
#undef RS_TABLE_SIZE
|
|
||||||
#define RS_TABLE_SIZE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define JZ_BASE_BAUD (12000000/16)
|
|
||||||
|
|
||||||
#define JZ_SERIAL_PORT_DEFNS \
|
|
||||||
{ .baud_base = JZ_BASE_BAUD, .irq = IRQ_UART0, \
|
|
||||||
.flags = STD_COM_FLAGS, .iomem_base = (u8 *)UART0_BASE, \
|
|
||||||
.iomem_reg_shift = 2, .io_type = SERIAL_IO_MEM },
|
|
||||||
|
|
||||||
#endif /* __ASM_BORAD_SERIAL_H__ */
|
|
@ -94,7 +94,11 @@ static struct mtd_partition qi_lb60_partitions_2gb[] = {
|
|||||||
},
|
},
|
||||||
{ .name = "NAND ROOTFS partition",
|
{ .name = "NAND ROOTFS partition",
|
||||||
.offset = 8 * 0x100000,
|
.offset = 8 * 0x100000,
|
||||||
.size = (504 + 512 + 1024) * 0x100000,
|
.size = 256 * 0x100000,
|
||||||
|
},
|
||||||
|
{ .name = "NAND DATA partition",
|
||||||
|
.offset = 264 * 0x100000,
|
||||||
|
.size = 1784 * 0x100000,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -120,16 +124,12 @@ static struct jz_nand_platform_data qi_lb60_nand_pdata = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Keyboard*/
|
/* Keyboard*/
|
||||||
|
#define KEY_QI_VOLUP KEY_F11
|
||||||
/* #define KEEP_UART_ALIVE
|
#define KEY_QI_VOLDOWN KEY_F12
|
||||||
* don't define this. the keyboard and keyboard both work
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define KEY_QI_QI KEY_F13
|
#define KEY_QI_QI KEY_F13
|
||||||
#define KEY_QI_UPRED KEY_RIGHTALT
|
#define KEY_QI_ACUTE KEY_GRAVE
|
||||||
#define KEY_QI_VOLUP KEY_VOLUMEUP
|
|
||||||
#define KEY_QI_VOLDOWN KEY_VOLUMEDOWN
|
|
||||||
#define KEY_QI_FN KEY_LEFTCTRL
|
#define KEY_QI_FN KEY_LEFTCTRL
|
||||||
|
#define KEY_QI_UPRED KEY_RIGHTALT
|
||||||
|
|
||||||
static const uint32_t qi_lb60_keymap[] = {
|
static const uint32_t qi_lb60_keymap[] = {
|
||||||
KEY(0, 0, KEY_F1), /* S2 */
|
KEY(0, 0, KEY_F1), /* S2 */
|
||||||
@ -167,7 +167,7 @@ static const uint32_t qi_lb60_keymap[] = {
|
|||||||
KEY(4, 0, KEY_TAB), /* S34 */
|
KEY(4, 0, KEY_TAB), /* S34 */
|
||||||
KEY(4, 1, KEY_CAPSLOCK), /* S35 */
|
KEY(4, 1, KEY_CAPSLOCK), /* S35 */
|
||||||
KEY(4, 2, KEY_BACKSLASH), /* S36 */
|
KEY(4, 2, KEY_BACKSLASH), /* S36 */
|
||||||
KEY(4, 3, KEY_APOSTROPHE), /* S37 */
|
KEY(4, 3, KEY_QI_ACUTE), /* S37 */
|
||||||
KEY(4, 4, KEY_COMMA), /* S38 */
|
KEY(4, 4, KEY_COMMA), /* S38 */
|
||||||
KEY(4, 5, KEY_DOT), /* S39 */
|
KEY(4, 5, KEY_DOT), /* S39 */
|
||||||
KEY(4, 6, KEY_SLASH), /* S40 */
|
KEY(4, 6, KEY_SLASH), /* S40 */
|
||||||
@ -188,12 +188,9 @@ static const uint32_t qi_lb60_keymap[] = {
|
|||||||
KEY(6, 5, KEY_QI_VOLDOWN), /* S55 */
|
KEY(6, 5, KEY_QI_VOLDOWN), /* S55 */
|
||||||
KEY(6, 6, KEY_DOWN), /* S56 */
|
KEY(6, 6, KEY_DOWN), /* S56 */
|
||||||
KEY(6, 7, KEY_RIGHT), /* S57 */
|
KEY(6, 7, KEY_RIGHT), /* S57 */
|
||||||
|
|
||||||
#ifndef KEEP_UART_ALIVE
|
|
||||||
KEY(7, 0, KEY_LEFTSHIFT), /* S58 */
|
KEY(7, 0, KEY_LEFTSHIFT), /* S58 */
|
||||||
KEY(7, 1, KEY_LEFTALT), /* S59 */
|
KEY(7, 1, KEY_LEFTALT), /* S59 */
|
||||||
KEY(7, 2, KEY_QI_FN), /* S60 */
|
KEY(7, 2, KEY_QI_FN), /* S60 */
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct matrix_keymap_data qi_lb60_keymap_data = {
|
static const struct matrix_keymap_data qi_lb60_keymap_data = {
|
||||||
@ -206,10 +203,7 @@ static const unsigned int qi_lb60_keypad_cols[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned int qi_lb60_keypad_rows[] = {
|
static const unsigned int qi_lb60_keypad_rows[] = {
|
||||||
114, 115, 116, 117, 118, 119, 120,
|
114, 115, 116, 117, 118, 119, 120, 122,
|
||||||
#ifndef KEEP_UART_ALIVE
|
|
||||||
122,
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct matrix_keypad_platform_data qi_lb60_pdata = {
|
static struct matrix_keypad_platform_data qi_lb60_pdata = {
|
||||||
|
@ -39,7 +39,6 @@
|
|||||||
#include <asm/mach-jz4740/jz4740.h>
|
#include <asm/mach-jz4740/jz4740.h>
|
||||||
#include <asm/mach-jz4740/regs.h>
|
#include <asm/mach-jz4740/regs.h>
|
||||||
#include <asm/mach-jz4740/clock.h>
|
#include <asm/mach-jz4740/clock.h>
|
||||||
#include <asm/mach-jz4740/serial.h>
|
|
||||||
|
|
||||||
#include "clock.h"
|
#include "clock.h"
|
||||||
|
|
||||||
|
@ -98,12 +98,12 @@ static void jz4740_init_timer(void)
|
|||||||
static void jz4740_timer_enable(unsigned int timer)
|
static void jz4740_timer_enable(unsigned int timer)
|
||||||
{
|
{
|
||||||
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR);
|
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR);
|
||||||
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_SET);
|
writeb(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void jz4740_timer_disable(unsigned int timer)
|
static void jz4740_timer_disable(unsigned int timer)
|
||||||
{
|
{
|
||||||
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_CLEAR);
|
writeb(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_ENABLE_CLEAR);
|
||||||
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_SET);
|
writel(BIT(timer), jz4740_timer_base + JZ_REG_TIMER_STOP_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ u_short plain_map[NR_KEYS] = {
|
|||||||
0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
|
0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
|
||||||
0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf706, 0xfb61, 0xfb73,
|
0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf706, 0xfb61, 0xfb73,
|
||||||
0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b,
|
0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b,
|
||||||
0xf027, 0xf060, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
|
0xf027, 0xf0b4, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
|
||||||
0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf701, 0xf30c,
|
0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf701, 0xf30c,
|
||||||
0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
|
0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
|
||||||
0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307,
|
0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307,
|
||||||
@ -46,13 +46,13 @@ static u_short shift_map[NR_KEYS] = {
|
|||||||
0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
|
0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
|
||||||
0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf706, 0xfb41, 0xfb53,
|
0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf706, 0xfb41, 0xfb53,
|
||||||
0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a,
|
0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a,
|
||||||
0xf022, 0xf07e, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
|
0xf022, 0xf060, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
|
||||||
0xfb42, 0xfb4e, 0xfb4d, 0xf03b, 0xf03a, 0xf03f, 0xf701, 0xf30c,
|
0xfb42, 0xfb4e, 0xfb4d, 0xf03b, 0xf03a, 0xf03f, 0xf701, 0xf30c,
|
||||||
0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
|
0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
|
||||||
0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307,
|
0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307,
|
||||||
0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
|
0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
|
||||||
0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf10a,
|
0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf20b,
|
||||||
0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
|
0xf20a, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
|
||||||
0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
|
0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
|
||||||
0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116,
|
0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116,
|
||||||
0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
|
0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
|
||||||
@ -77,17 +77,17 @@ static u_short shift_map[NR_KEYS] = {
|
|||||||
|
|
||||||
static u_short altgr_map[NR_KEYS] = {
|
static u_short altgr_map[NR_KEYS] = {
|
||||||
0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
|
0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
|
||||||
0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf07e, 0xf008, 0xf200,
|
0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf07e, 0xf116, 0xf200,
|
||||||
0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e, 0xf026, 0xf02a,
|
0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e, 0xf026, 0xf02a,
|
||||||
0xf028, 0xf029, 0xf200, 0xf07e, 0xf201, 0xf706, 0xf0b0, 0xf0a8,
|
0xf028, 0xf029, 0xf200, 0xf07e, 0xf201, 0xf706, 0xf0b0, 0xf0a8,
|
||||||
0xf0a4, 0xf02d, 0xf05f, 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf200,
|
0xf0a4, 0xf02d, 0xf05f, 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf200,
|
||||||
0xf200, 0xf200, 0xf700, 0xf200, 0xf039, 0xf030, 0xf916, 0xfb76,
|
0xf200, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xf916, 0xfb76,
|
||||||
0xf915, 0xf03c, 0xf03e, 0xf027, 0xf022, 0xf200, 0xf701, 0xf30c,
|
0xf915, 0xf03c, 0xf03e, 0xf027, 0xf022, 0xf200, 0xf701, 0xf30c,
|
||||||
0xf703, 0xf200, 0xf207, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035,
|
0xf703, 0xf200, 0xf207, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510,
|
||||||
0xf036, 0xf037, 0xf038, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911,
|
0xf511, 0xf512, 0xf513, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911,
|
||||||
0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b,
|
0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b,
|
||||||
0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf516,
|
0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf118,
|
||||||
0xf517, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
|
0xf119, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
|
||||||
0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
|
0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
|
||||||
0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
|
0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
|
||||||
0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
|
0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
|
||||||
@ -116,7 +116,7 @@ static u_short ctrl_map[NR_KEYS] = {
|
|||||||
0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
|
0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
|
||||||
0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf706, 0xf001, 0xf013,
|
0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf706, 0xf001, 0xf013,
|
||||||
0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
|
0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
|
||||||
0xf007, 0xf000, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016,
|
0xf007, 0xf200, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016,
|
||||||
0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf701, 0xf30c,
|
0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf701, 0xf30c,
|
||||||
0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
|
0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
|
||||||
0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307,
|
0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307,
|
||||||
@ -186,7 +186,7 @@ static u_short alt_map[NR_KEYS] = {
|
|||||||
0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
|
0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
|
||||||
0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf706, 0xf861, 0xf873,
|
0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf706, 0xf861, 0xf873,
|
||||||
0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b,
|
0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b,
|
||||||
0xf827, 0xf860, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876,
|
0xf827, 0xf200, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876,
|
||||||
0xf862, 0xf86e, 0xf86d, 0xf200, 0xf200, 0xf82f, 0xf701, 0xf30c,
|
0xf862, 0xf86e, 0xf86d, 0xf200, 0xf200, 0xf82f, 0xf701, 0xf30c,
|
||||||
0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
|
0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
|
||||||
0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907,
|
0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907,
|
||||||
@ -324,8 +324,6 @@ char func_buf[] = {
|
|||||||
'\033', '[', '1', '9', '~', 0,
|
'\033', '[', '1', '9', '~', 0,
|
||||||
'\033', '[', '2', '0', '~', 0,
|
'\033', '[', '2', '0', '~', 0,
|
||||||
'\033', '[', '2', '1', '~', 0,
|
'\033', '[', '2', '1', '~', 0,
|
||||||
'\033', '[', '2', '3', '~', 0,
|
|
||||||
'\033', '[', '2', '4', '~', 0,
|
|
||||||
'\033', '[', '2', '5', '~', 0,
|
'\033', '[', '2', '5', '~', 0,
|
||||||
'\033', '[', '2', '6', '~', 0,
|
'\033', '[', '2', '6', '~', 0,
|
||||||
'\033', '[', '2', '8', '~', 0,
|
'\033', '[', '2', '8', '~', 0,
|
||||||
@ -359,6 +357,8 @@ char *func_table[MAX_NR_FUNC] = {
|
|||||||
func_buf + 37,
|
func_buf + 37,
|
||||||
func_buf + 43,
|
func_buf + 43,
|
||||||
func_buf + 49,
|
func_buf + 49,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
func_buf + 55,
|
func_buf + 55,
|
||||||
func_buf + 61,
|
func_buf + 61,
|
||||||
func_buf + 67,
|
func_buf + 67,
|
||||||
@ -368,17 +368,15 @@ char *func_table[MAX_NR_FUNC] = {
|
|||||||
func_buf + 91,
|
func_buf + 91,
|
||||||
func_buf + 97,
|
func_buf + 97,
|
||||||
func_buf + 103,
|
func_buf + 103,
|
||||||
func_buf + 109,
|
func_buf + 108,
|
||||||
func_buf + 115,
|
func_buf + 113,
|
||||||
func_buf + 120,
|
func_buf + 118,
|
||||||
func_buf + 125,
|
func_buf + 123,
|
||||||
func_buf + 130,
|
func_buf + 128,
|
||||||
func_buf + 135,
|
func_buf + 133,
|
||||||
func_buf + 140,
|
|
||||||
func_buf + 145,
|
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
func_buf + 149,
|
func_buf + 137,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -176,6 +176,7 @@ static int __devinit gpm940b0_probe(struct spi_device *spi)
|
|||||||
gpm940b0->enabled = 1;
|
gpm940b0->enabled = 1;
|
||||||
dev_set_drvdata(&spi->dev, gpm940b0);
|
dev_set_drvdata(&spi->dev, gpm940b0);
|
||||||
|
|
||||||
|
gpm940b0_write_reg(spi, 0x07, 0x8d);
|
||||||
gpm940b0_write_reg(spi, 0x13, 0x01);
|
gpm940b0_write_reg(spi, 0x13, 0x01);
|
||||||
gpm940b0_write_reg(spi, 0x5, 0xc7);
|
gpm940b0_write_reg(spi, 0x5, 0xc7);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -221,6 +221,10 @@ static int jzfb_setcolreg(unsigned regno, unsigned red, unsigned green, unsigned
|
|||||||
if (regno >= fb->cmap.len)
|
if (regno >= fb->cmap.len)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
red >>= 8;
|
||||||
|
green >>= 8;
|
||||||
|
blue >>= 8;
|
||||||
|
|
||||||
((uint32_t*)fb->pseudo_palette)[regno] = red << 16 | green << 8 | blue;
|
((uint32_t*)fb->pseudo_palette)[regno] = red << 16 | green << 8 | blue;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -19,6 +19,9 @@ endif
|
|||||||
|
|
||||||
define Image/BuildKernel
|
define Image/BuildKernel
|
||||||
cp $(LINUX_DIR)/arch/mips/boot/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage.bin
|
cp $(LINUX_DIR)/arch/mips/boot/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage.bin
|
||||||
|
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
|
||||||
|
cp $(LINUX_DIR)/arch/mips/boot/compressed/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage.bin
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Image/Build/squashfs
|
define Image/Build/squashfs
|
||||||
|
300
target/linux/xburst/patches-2.6.32/450-fbcon-color-fonts.patch
Normal file
300
target/linux/xburst/patches-2.6.32/450-fbcon-color-fonts.patch
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
--- ./drivers/char/vt.c.orig 2010-03-16 04:52:04.000000000 +1300
|
||||||
|
+++ ./drivers/char/vt.c 2010-07-13 00:00:34.000000000 +1200
|
||||||
|
@@ -3894,6 +3894,7 @@
|
||||||
|
struct console_font font;
|
||||||
|
int rc = -EINVAL;
|
||||||
|
int size;
|
||||||
|
+ u8 std_font = *((u32*)op->data) != 0x6a127efd;
|
||||||
|
|
||||||
|
if (vc->vc_mode != KD_TEXT)
|
||||||
|
return -EINVAL;
|
||||||
|
@@ -3923,7 +3924,7 @@
|
||||||
|
}
|
||||||
|
if (op->width <= 0 || op->width > 32 || op->height > 32)
|
||||||
|
return -EINVAL;
|
||||||
|
- size = (op->width+7)/8 * 32 * op->charcount;
|
||||||
|
+ size = ( std_font ? (op->width+7)/8 * 32 : 4 * op->width * op->height) * op->charcount;
|
||||||
|
if (size > max_font_size)
|
||||||
|
return -ENOSPC;
|
||||||
|
font.charcount = op->charcount;
|
||||||
|
--- ./drivers/video/console/bitblit.c.orig 2010-07-01 11:30:17.000000000 +1200
|
||||||
|
+++ ./drivers/video/console/bitblit.c 2010-07-15 21:12:13.000000000 +1200
|
||||||
|
@@ -110,6 +110,12 @@
|
||||||
|
info->fbops->fb_imageblit(info, image);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* info: details of the framebuffer
|
||||||
|
+ * image: the off-screen image in which the character (sub)string is being
|
||||||
|
+ * prepared
|
||||||
|
+ * dst: a pointer to the top-left pixel in the off-screen image where the
|
||||||
|
+ * character (sub)string should go
|
||||||
|
+ */
|
||||||
|
static inline void bit_putcs_unaligned(struct vc_data *vc,
|
||||||
|
struct fb_info *info, const u16 *s,
|
||||||
|
u32 attr, u32 cnt, u32 d_pitch,
|
||||||
|
@@ -145,12 +151,62 @@
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+void inline draw_glyph_row_inv( int pixels_across_glyph, u8 *src, u8 *target) {
|
||||||
|
+ u32 *pixel_on_glyph_sheet = (u32*) src;
|
||||||
|
+ u32 *pixel_on_screen = (u32*) target;
|
||||||
|
+
|
||||||
|
+ while( pixels_across_glyph--) {
|
||||||
|
+ *pixel_on_screen = ~(*pixel_on_glyph_sheet);
|
||||||
|
+ ++ pixel_on_glyph_sheet;
|
||||||
|
+ ++ pixel_on_screen;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void inline draw_glyph_row_75( int pixels_across_glyph, u8 *src, u8 *target) {
|
||||||
|
+ u32 pixel;
|
||||||
|
+ u32 *pixel_on_glyph_sheet = (u32*) src;
|
||||||
|
+ u32 *pixel_on_screen = (u32*) target;
|
||||||
|
+ /* Copy the pixels at 75% brightness */
|
||||||
|
+ while( pixels_across_glyph--) {
|
||||||
|
+ pixel = *pixel_on_glyph_sheet;
|
||||||
|
+ /* This is a cheeky way of multiplying by 0.75 */
|
||||||
|
+ pixel = ( pixel >> 1) & 0x7f7f7f7f;
|
||||||
|
+ pixel += ( pixel >> 1) & 0x7f7f7f7f;
|
||||||
|
+ *pixel_on_screen = pixel;
|
||||||
|
+ ++ pixel_on_glyph_sheet;
|
||||||
|
+ ++ pixel_on_screen;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * width: the number of bytes required to store a single row of pixels from
|
||||||
|
+ * a glyph
|
||||||
|
+ * cellsize: the number of bytes required to store the pixels for a single
|
||||||
|
+ * glyph
|
||||||
|
+ * maxcnt: the maximum number of characters that can be blasted to the screen
|
||||||
|
+ * at one time ( limited by the amount of video RAM available for a
|
||||||
|
+ * (sub)string of characters)
|
||||||
|
+ * The NanoNote has 32-bits per pixel arranged BGRA
|
||||||
|
+ * info->fix.line_length: the number of bytes to advance through the frame
|
||||||
|
+ * buffer in order to get from the address of a pixel to
|
||||||
|
+ * the address of the pixel directly below it
|
||||||
|
+ * screen_row_hop: the number of 32-bit words to advance through the frame
|
||||||
|
+ * buffer in order to get from the address of a pixel to the
|
||||||
|
+ * address of the pixel directly below it on the screen
|
||||||
|
+ * glyph_on_screen: the address of the pixel on screen where the top-left of
|
||||||
|
+ * the next glyph should go
|
||||||
|
+ * row_on_screen: the address of the pixel on screen where the next row of
|
||||||
|
+ * pixels from the glyph should go
|
||||||
|
+ * row_on_glyph_sheet: pointer within font.data ( the glyph sheet) of the
|
||||||
|
+ * left-most pixel from the next row to be drawn
|
||||||
|
+ */
|
||||||
|
static void bit_putcs(struct vc_data *vc, struct fb_info *info,
|
||||||
|
const unsigned short *s, int count, int yy, int xx,
|
||||||
|
int fg, int bg)
|
||||||
|
{
|
||||||
|
struct fb_image image;
|
||||||
|
- u32 width = DIV_ROUND_UP(vc->vc_font.width, 8);
|
||||||
|
+ u8 std_font = *((u32*)vc->vc_font.data) != 0x6a127efd;
|
||||||
|
+ u32 width = std_font ? DIV_ROUND_UP(vc->vc_font.width, 8) : 4 * vc->vc_font.width;
|
||||||
|
u32 cellsize = width * vc->vc_font.height;
|
||||||
|
u32 maxcnt = info->pixmap.size/cellsize;
|
||||||
|
u32 scan_align = info->pixmap.scan_align - 1;
|
||||||
|
@@ -158,6 +214,10 @@
|
||||||
|
u32 mod = vc->vc_font.width % 8, cnt, pitch, size;
|
||||||
|
u32 attribute = get_attribute(info, scr_readw(s));
|
||||||
|
u8 *dst, *buf = NULL;
|
||||||
|
+ u32 screen_row_hop;
|
||||||
|
+ u16 charmask;
|
||||||
|
+ u8 *row_on_glyph_sheet, *glyph_on_screen, *row_on_screen;
|
||||||
|
+ u8 code_point, rows_left;
|
||||||
|
|
||||||
|
image.fg_color = fg;
|
||||||
|
image.bg_color = bg;
|
||||||
|
@@ -172,31 +232,73 @@
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- while (count) {
|
||||||
|
- if (count > maxcnt)
|
||||||
|
- cnt = maxcnt;
|
||||||
|
- else
|
||||||
|
- cnt = count;
|
||||||
|
-
|
||||||
|
- image.width = vc->vc_font.width * cnt;
|
||||||
|
- pitch = DIV_ROUND_UP(image.width, 8) + scan_align;
|
||||||
|
- pitch &= ~scan_align;
|
||||||
|
- size = pitch * image.height + buf_align;
|
||||||
|
- size &= ~buf_align;
|
||||||
|
- dst = fb_get_buffer_offset(info, &info->pixmap, size);
|
||||||
|
- image.data = dst;
|
||||||
|
-
|
||||||
|
- if (!mod)
|
||||||
|
- bit_putcs_aligned(vc, info, s, attribute, cnt, pitch,
|
||||||
|
- width, cellsize, &image, buf, dst);
|
||||||
|
- else
|
||||||
|
- bit_putcs_unaligned(vc, info, s, attribute, cnt,
|
||||||
|
- pitch, width, cellsize, &image,
|
||||||
|
- buf, dst);
|
||||||
|
-
|
||||||
|
- image.dx += cnt * vc->vc_font.width;
|
||||||
|
- count -= cnt;
|
||||||
|
- s += cnt;
|
||||||
|
+ if ( std_font) {
|
||||||
|
+ while (count) {
|
||||||
|
+ if (count > maxcnt)
|
||||||
|
+ cnt = maxcnt;
|
||||||
|
+ else
|
||||||
|
+ cnt = count;
|
||||||
|
+
|
||||||
|
+ image.width = vc->vc_font.width * cnt;
|
||||||
|
+ pitch = DIV_ROUND_UP(image.width, 8) + scan_align;
|
||||||
|
+ pitch &= ~scan_align;
|
||||||
|
+ size = pitch * image.height + buf_align;
|
||||||
|
+ size &= ~buf_align;
|
||||||
|
+ dst = fb_get_buffer_offset(info, &info->pixmap, size);
|
||||||
|
+ image.data = dst;
|
||||||
|
+
|
||||||
|
+ if (!mod)
|
||||||
|
+ bit_putcs_aligned(vc, info, s, attribute, cnt,
|
||||||
|
+ pitch, width, cellsize,
|
||||||
|
+ &image, buf, dst);
|
||||||
|
+ else
|
||||||
|
+ bit_putcs_unaligned(vc, info, s, attribute, cnt,
|
||||||
|
+ pitch, width, cellsize,
|
||||||
|
+ &image, buf, dst);
|
||||||
|
+
|
||||||
|
+ image.dx += cnt * vc->vc_font.width;
|
||||||
|
+ count -= cnt;
|
||||||
|
+ s += cnt;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else { /* The font is not a standard 1-bit font */
|
||||||
|
+ charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff;
|
||||||
|
+ screen_row_hop = info->fix.line_length;
|
||||||
|
+ glyph_on_screen = info->screen_base +
|
||||||
|
+ screen_row_hop * image.dy +
|
||||||
|
+ 4 * image.dx;
|
||||||
|
+ /* While there are still characters to draw.. */
|
||||||
|
+ while (count--) {
|
||||||
|
+ code_point = scr_readw(s++) & charmask;
|
||||||
|
+ row_on_glyph_sheet = vc->vc_font.data +
|
||||||
|
+ cellsize * code_point;
|
||||||
|
+ /* Draw every row of the glyph */
|
||||||
|
+ row_on_screen = glyph_on_screen;
|
||||||
|
+ rows_left = vc->vc_font.height;
|
||||||
|
+ while( rows_left--)
|
||||||
|
+ {
|
||||||
|
+ /* If the background color is NOT black then do
|
||||||
|
+ * reverse video */
|
||||||
|
+ if ( 0 < bg) {
|
||||||
|
+ draw_glyph_row_inv( vc->vc_font.width,
|
||||||
|
+ row_on_glyph_sheet,
|
||||||
|
+ row_on_screen);
|
||||||
|
+ }
|
||||||
|
+ /* If the foreground color is high-intensity */
|
||||||
|
+ else if ( 8 <= fg) {
|
||||||
|
+ memcpy( row_on_screen,
|
||||||
|
+ row_on_glyph_sheet, width);
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ draw_glyph_row_75( vc->vc_font.width,
|
||||||
|
+ row_on_glyph_sheet,
|
||||||
|
+ row_on_screen);
|
||||||
|
+ }
|
||||||
|
+ row_on_glyph_sheet += width;
|
||||||
|
+ row_on_screen += screen_row_hop;
|
||||||
|
+ }
|
||||||
|
+ glyph_on_screen += width;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buf is always NULL except when in monochrome mode, so in this case
|
||||||
|
@@ -239,6 +341,29 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void bgra_cursor( struct vc_data *vc, struct fb_info *info, short c,
|
||||||
|
+ struct fb_cursor *cursor)
|
||||||
|
+{
|
||||||
|
+ u32 x = cursor->image.dx;
|
||||||
|
+ u32 y = cursor->image.dy;
|
||||||
|
+ u32 gw = vc->vc_font.width;
|
||||||
|
+ u32 gh = vc->vc_font.height;
|
||||||
|
+ u32 *pixel;
|
||||||
|
+
|
||||||
|
+ /* Draw the glyph to the screen */
|
||||||
|
+ bit_putcs( vc, info, &c, 1, y/gh, x/gw, 0, 0);
|
||||||
|
+
|
||||||
|
+ if ( cursor->enable) {
|
||||||
|
+ /* Invert the last row of pixels */
|
||||||
|
+ pixel = (u32*) ( info->screen_base +
|
||||||
|
+ info->fix.line_length * ( y + gh - 1) + 4 * x);
|
||||||
|
+ while ( gw--) {
|
||||||
|
+ *pixel ^= 0xffffffff;
|
||||||
|
+ ++ pixel;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void bit_cursor(struct vc_data *vc, struct fb_info *info, int mode,
|
||||||
|
int softback_lines, int fg, int bg)
|
||||||
|
{
|
||||||
|
@@ -250,6 +375,7 @@
|
||||||
|
int attribute, use_sw = (vc->vc_cursor_type & 0x10);
|
||||||
|
int err = 1;
|
||||||
|
char *src;
|
||||||
|
+ u8 std_font = *((u32*)vc->vc_font.data) != 0x6a127efd;
|
||||||
|
|
||||||
|
cursor.set = 0;
|
||||||
|
|
||||||
|
@@ -388,8 +514,14 @@
|
||||||
|
if (info->fbops->fb_cursor)
|
||||||
|
err = info->fbops->fb_cursor(info, &cursor);
|
||||||
|
|
||||||
|
- if (err)
|
||||||
|
- soft_cursor(info, &cursor);
|
||||||
|
+ if (err) {
|
||||||
|
+ if ( std_font) {
|
||||||
|
+ soft_cursor(info, &cursor);
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ bgra_cursor( vc, info, c, &cursor);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
ops->cursor_reset = 0;
|
||||||
|
}
|
||||||
|
--- ./drivers/video/console/fbcon.c.orig 2010-07-12 23:19:39.000000000 +1200
|
||||||
|
+++ ./drivers/video/console/fbcon.c 2010-07-13 20:18:41.000000000 +1200
|
||||||
|
@@ -2528,7 +2528,8 @@
|
||||||
|
int size;
|
||||||
|
int i, csum;
|
||||||
|
u8 *new_data, *data = font->data;
|
||||||
|
- int pitch = (font->width+7) >> 3;
|
||||||
|
+ u8 std_font = *((u32*)data) != 0x6a127efd;
|
||||||
|
+ int pitch = std_font ? (font->width+7) >> 3 : 4 * font->width;
|
||||||
|
|
||||||
|
/* Is there a reason why fbconsole couldn't handle any charcount >256?
|
||||||
|
* If not this check should be changed to charcount < 256 */
|
||||||
|
@@ -2547,6 +2548,7 @@
|
||||||
|
size = h * pitch * charcount;
|
||||||
|
|
||||||
|
new_data = kmalloc(FONT_EXTRA_WORDS * sizeof(int) + size, GFP_USER);
|
||||||
|
+ DPRINTK(KERN_INFO "fbcon_set_font size:%d\n", size);
|
||||||
|
|
||||||
|
if (!new_data)
|
||||||
|
return -ENOMEM;
|
||||||
|
@@ -2555,8 +2557,14 @@
|
||||||
|
FNTSIZE(new_data) = size;
|
||||||
|
FNTCHARCNT(new_data) = charcount;
|
||||||
|
REFCOUNT(new_data) = 0; /* usage counter */
|
||||||
|
- for (i=0; i< charcount; i++) {
|
||||||
|
- memcpy(new_data + i*h*pitch, data + i*32*pitch, h*pitch);
|
||||||
|
+ if ( std_font) {
|
||||||
|
+ for (i=0; i< charcount; i++) {
|
||||||
|
+ memcpy(new_data + i*h*pitch, data + i*32*pitch,
|
||||||
|
+ h*pitch);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ memcpy( new_data, data, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Since linux has a nice crc32 function use it for counting font
|
@ -1,14 +1,18 @@
|
|||||||
From d76e6b85f28891eecded962793fb8a02cdf26f39 Mon Sep 17 00:00:00 2001
|
From d76e6b85f28891eecded962793fb8a02cdf26f39 Mon Sep 17 00:00:00 2001
|
||||||
|
|
||||||
From: Lars-Peter Clausen <lars@metafoo.de>
|
From: Lars-Peter Clausen <lars@metafoo.de>
|
||||||
Date: Mon, 11 Jan 2010 04:29:51 +0100
|
|
||||||
Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-modifier-keys.patch
|
Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-modifier-keys.patch
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/char/defkeymap.map | 74 +++++++++++++++++++++++++++++++-------------
|
|
||||||
1 files changed, 52 insertions(+), 22 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/char/defkeymap.map
|
drivers/char/defkeymap.map | 80 ++++++++++++++++++++++++++++++--------------
|
||||||
+++ b/drivers/char/defkeymap.map
|
1 files changed, 54 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
|
||||||
|
Index: linux-2.6.32.10/drivers/char/defkeymap.map
|
||||||
|
===================================================================
|
||||||
|
--- linux-2.6.32.10.orig/drivers/char/defkeymap.map 2010-03-15 23:52:04.000000000 +0800
|
||||||
|
+++ linux-2.6.32.10/drivers/char/defkeymap.map 2010-06-04 21:50:10.855160218 +0800
|
||||||
@@ -1,5 +1,5 @@
|
@@ -1,5 +1,5 @@
|
||||||
# Default kernel keymap. This uses 7 modifier combinations.
|
# Default kernel keymap. This uses 7 modifier combinations.
|
||||||
-keymaps 0-2,4-5,8,12
|
-keymaps 0-2,4-5,8,12
|
||||||
@ -16,18 +20,15 @@ Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-mo
|
|||||||
# Change the above line into
|
# Change the above line into
|
||||||
# keymaps 0-2,4-6,8,12
|
# keymaps 0-2,4-6,8,12
|
||||||
# in case you want the entries
|
# in case you want the entries
|
||||||
@@ -45,24 +45,38 @@ keycode 12 = minus underscor
|
@@ -47,22 +47,36 @@
|
||||||
control keycode 12 = Control_underscore
|
|
||||||
shift control keycode 12 = Control_underscore
|
|
||||||
alt keycode 12 = Meta_minus
|
alt keycode 12 = Meta_minus
|
||||||
-keycode 13 = equal plus
|
keycode 13 = equal plus
|
||||||
+keycode 13 = equal plus
|
|
||||||
alt keycode 13 = Meta_equal
|
alt keycode 13 = Meta_equal
|
||||||
+ altgr keycode 13 = asciitilde
|
+ altgr keycode 13 = asciitilde
|
||||||
+ ctrll keycode 13 = three
|
+ ctrll keycode 13 = three
|
||||||
keycode 14 = Delete Delete
|
keycode 14 = Delete Delete
|
||||||
- control keycode 14 = BackSpace
|
- control keycode 14 = BackSpace
|
||||||
+ altgr keycode 14 = BackSpace
|
+ altgr keycode 14 = Remove
|
||||||
alt keycode 14 = Meta_Delete
|
alt keycode 14 = Meta_Delete
|
||||||
keycode 15 = Tab Tab
|
keycode 15 = Tab Tab
|
||||||
alt keycode 15 = Meta_Tab
|
alt keycode 15 = Meta_Tab
|
||||||
@ -58,7 +59,7 @@ Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-mo
|
|||||||
keycode 26 = bracketleft braceleft
|
keycode 26 = bracketleft braceleft
|
||||||
control keycode 26 = Escape
|
control keycode 26 = Escape
|
||||||
alt keycode 26 = Meta_bracketleft
|
alt keycode 26 = Meta_bracketleft
|
||||||
@@ -71,19 +85,28 @@ keycode 27 = bracketright bracerigh
|
@@ -71,27 +85,34 @@
|
||||||
alt keycode 27 = Meta_bracketright
|
alt keycode 27 = Meta_bracketright
|
||||||
keycode 28 = Return
|
keycode 28 = Return
|
||||||
alt keycode 28 = Meta_Control_m
|
alt keycode 28 = Meta_Control_m
|
||||||
@ -91,16 +92,16 @@ Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-mo
|
|||||||
keycode 39 = semicolon colon
|
keycode 39 = semicolon colon
|
||||||
alt keycode 39 = Meta_semicolon
|
alt keycode 39 = Meta_semicolon
|
||||||
keycode 40 = apostrophe quotedbl
|
keycode 40 = apostrophe quotedbl
|
||||||
@@ -97,58 +120,65 @@ keycode 43 = backslash bar
|
control keycode 40 = Control_g
|
||||||
|
alt keycode 40 = Meta_apostrophe
|
||||||
|
-keycode 41 = grave asciitilde
|
||||||
|
- control keycode 41 = nul
|
||||||
|
- alt keycode 41 = Meta_grave
|
||||||
|
+keycode 41 = U+00B4 grave
|
||||||
|
keycode 42 = Shift
|
||||||
|
keycode 43 = backslash bar
|
||||||
control keycode 43 = Control_backslash
|
control keycode 43 = Control_backslash
|
||||||
alt keycode 43 = Meta_backslash
|
@@ -104,16 +125,21 @@
|
||||||
keycode 44 = z
|
|
||||||
+ altgr keycode 44 = nine
|
|
||||||
keycode 45 = x
|
|
||||||
+ altgr keycode 45 = zero
|
|
||||||
keycode 46 = c
|
|
||||||
altgr keycode 46 = Hex_C
|
|
||||||
keycode 47 = v
|
|
||||||
keycode 48 = b
|
keycode 48 = b
|
||||||
altgr keycode 48 = Hex_B
|
altgr keycode 48 = Hex_B
|
||||||
keycode 49 = n
|
keycode 49 = n
|
||||||
@ -127,55 +128,26 @@ Subject: [PATCH] /opt/Projects/openwrt/target/linux/xburst/patches-2.6.31/500-mo
|
|||||||
keycode 55 = KP_Multiply
|
keycode 55 = KP_Multiply
|
||||||
keycode 56 = Alt
|
keycode 56 = Alt
|
||||||
keycode 57 = space space
|
keycode 57 = space space
|
||||||
control keycode 57 = nul
|
@@ -204,11 +230,11 @@
|
||||||
alt keycode 57 = Meta_space
|
keycode 85 =
|
||||||
keycode 58 = Caps_Lock
|
keycode 86 = less greater bar
|
||||||
-keycode 59 = F1 F11 Console_13
|
alt keycode 86 = Meta_less
|
||||||
+keycode 59 = F1 F11 one
|
-keycode 87 = F11 F11 Console_23
|
||||||
control keycode 59 = F1
|
+keycode 87 = F11 Scroll_Backward Prior
|
||||||
alt keycode 59 = Console_1
|
control keycode 87 = F11
|
||||||
control alt keycode 59 = Console_1
|
alt keycode 87 = Console_11
|
||||||
-keycode 60 = F2 F12 Console_14
|
control alt keycode 87 = Console_11
|
||||||
+keycode 60 = F2 F12 two
|
-keycode 88 = F12 F12 Console_24
|
||||||
control keycode 60 = F2
|
+keycode 88 = F12 Scroll_Forward Next
|
||||||
alt keycode 60 = Console_2
|
control keycode 88 = F12
|
||||||
control alt keycode 60 = Console_2
|
alt keycode 88 = Console_12
|
||||||
-keycode 61 = F3 F13 Console_15
|
control alt keycode 88 = Console_12
|
||||||
+keycode 61 = F3 F13 three
|
@@ -269,8 +295,6 @@
|
||||||
control keycode 61 = F3
|
string F8 = "\033[19~"
|
||||||
alt keycode 61 = Console_3
|
string F9 = "\033[20~"
|
||||||
control alt keycode 61 = Console_3
|
string F10 = "\033[21~"
|
||||||
-keycode 62 = F4 F14 Console_16
|
-string F11 = "\033[23~"
|
||||||
+keycode 62 = F4 F14 four
|
-string F12 = "\033[24~"
|
||||||
control keycode 62 = F4
|
string F13 = "\033[25~"
|
||||||
alt keycode 62 = Console_4
|
string F14 = "\033[26~"
|
||||||
control alt keycode 62 = Console_4
|
string F15 = "\033[28~"
|
||||||
-keycode 63 = F5 F15 Console_17
|
|
||||||
+keycode 63 = F5 F15 five
|
|
||||||
control keycode 63 = F5
|
|
||||||
alt keycode 63 = Console_5
|
|
||||||
control alt keycode 63 = Console_5
|
|
||||||
-keycode 64 = F6 F16 Console_18
|
|
||||||
+keycode 64 = F6 F16 six
|
|
||||||
control keycode 64 = F6
|
|
||||||
alt keycode 64 = Console_6
|
|
||||||
control alt keycode 64 = Console_6
|
|
||||||
-keycode 65 = F7 F17 Console_19
|
|
||||||
+keycode 65 = F7 F17 seven
|
|
||||||
control keycode 65 = F7
|
|
||||||
alt keycode 65 = Console_7
|
|
||||||
control alt keycode 65 = Console_7
|
|
||||||
-keycode 66 = F8 F18 Console_20
|
|
||||||
+keycode 66 = F8 F18 eight
|
|
||||||
control keycode 66 = F8
|
|
||||||
alt keycode 66 = Console_8
|
|
||||||
control alt keycode 66 = Console_8
|
|
||||||
@@ -220,7 +250,7 @@ keycode 93 =
|
|
||||||
keycode 94 =
|
|
||||||
keycode 95 =
|
|
||||||
keycode 96 = KP_Enter
|
|
||||||
-keycode 97 = Control
|
|
||||||
+keycode 97 = Control
|
|
||||||
keycode 98 = KP_Divide
|
|
||||||
keycode 99 = Control_backslash
|
|
||||||
control keycode 99 = Control_backslash
|
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
From 4939c63a61175f87d93ac0164c7adb40e8410a47 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xiangfu Liu <xiangfu@qi-hardware.com>
|
||||||
|
Date: Sun, 17 Jan 2010 23:38:35 +0800
|
||||||
|
Subject: [PATCH] ix upload zImage
|
||||||
|
|
||||||
|
---
|
||||||
|
arch/mips/boot/compressed/head.S | 1 -
|
||||||
|
arch/mips/boot/compressed/misc.c | 22 ----------------------
|
||||||
|
2 files changed, 0 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S
|
||||||
|
index d9700eb..6a4e685 100644
|
||||||
|
--- a/arch/mips/boot/compressed/head.S
|
||||||
|
+++ b/arch/mips/boot/compressed/head.S
|
||||||
|
@@ -5,7 +5,6 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm/asm.h>
|
||||||
|
-#include <asm/cacheops.h>
|
||||||
|
#include <asm/cachectl.h>
|
||||||
|
#include <asm/regdef.h>
|
||||||
|
|
||||||
|
diff --git a/arch/mips/boot/compressed/misc.c b/arch/mips/boot/compressed/misc.c
|
||||||
|
index 2309fee..c0b041b 100644
|
||||||
|
--- a/arch/mips/boot/compressed/misc.c
|
||||||
|
+++ b/arch/mips/boot/compressed/misc.c
|
||||||
|
@@ -103,28 +103,6 @@ static unsigned long free_mem_end_ptr;
|
||||||
|
|
||||||
|
#include "../../../../lib/inflate.c"
|
||||||
|
|
||||||
|
-static void *malloc(int size)
|
||||||
|
-{
|
||||||
|
- void *p;
|
||||||
|
-
|
||||||
|
- if (size <0) error("Malloc error\n");
|
||||||
|
- if (free_mem_ptr == 0) error("Memory error\n");
|
||||||
|
-
|
||||||
|
- free_mem_ptr = (free_mem_ptr + 3) & ~3; /* Align */
|
||||||
|
-
|
||||||
|
- p = (void *)free_mem_ptr;
|
||||||
|
- free_mem_ptr += size;
|
||||||
|
-
|
||||||
|
- if (free_mem_ptr >= free_mem_end_ptr)
|
||||||
|
- error("\nOut of memory\n");
|
||||||
|
-
|
||||||
|
- return p;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void free(void *where)
|
||||||
|
-{ /* Don't care */
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static void gzip_mark(void **ptr)
|
||||||
|
{
|
||||||
|
*ptr = (void *) free_mem_ptr;
|
||||||
|
--
|
||||||
|
1.6.3.3
|
||||||
|
|
@ -1,7 +1,9 @@
|
|||||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||||
CONFIG_BATTERY_JZ4740=y
|
CONFIG_BATTERY_JZ4740=y
|
||||||
CONFIG_CHARGER_GPIO=y
|
CONFIG_CMDLINE="root=/dev/ram0 rootfstype=ramfs console=ttyS0,57600 console=tty0 mem=32M"
|
||||||
CONFIG_FB_JZ4740=y
|
CONFIG_FB_JZ4740=y
|
||||||
|
CONFIG_FONT_6x11=y
|
||||||
|
# CONFIG_FONT_SUN8x16 is not set
|
||||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||||
CONFIG_JZ4740_ADC=y
|
CONFIG_JZ4740_ADC=y
|
||||||
CONFIG_JZ4740_QI_LB60=y
|
CONFIG_JZ4740_QI_LB60=y
|
||||||
@ -11,7 +13,10 @@ CONFIG_LCD_CLASS_DEVICE=y
|
|||||||
CONFIG_LCD_GPM940B0=y
|
CONFIG_LCD_GPM940B0=y
|
||||||
CONFIG_LOGO=y
|
CONFIG_LOGO=y
|
||||||
CONFIG_LOGO_OPENWRT_CLUT224=y
|
CONFIG_LOGO_OPENWRT_CLUT224=y
|
||||||
|
CONFIG_MIPS_FPU_EMU=y
|
||||||
|
CONFIG_SOC_JZ4740=y
|
||||||
CONFIG_SPI=y
|
CONFIG_SPI=y
|
||||||
CONFIG_SPI_BITBANG=y
|
CONFIG_SPI_BITBANG=y
|
||||||
CONFIG_SPI_GPIO=y
|
CONFIG_SPI_GPIO=y
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
|
CONFIG_USB_ETH_RNDIS=n
|
||||||
|
Loading…
Reference in New Issue
Block a user