[LinuxBIOS] [PATCH] TeleVideo TC7020 support

Uwe Hermann uwe at hermann-uwe.de
Mon Dec 3 22:10:52 CET 2007


On Thu, Nov 29, 2007 at 07:34:32PM -0800, Kenji Noguchi wrote:
> Attached is a patch for TeleVideo TC7020 support.
> It should work fine with r2993. Please kindly review.

Thanks, see quick review below:

 
> I will see how MythTV performs on this box. DirectFB already runs nicely.

Can you document this in the wiki (kernel command line options etc).


> Does anyone know if GX1 MPEG decoder is supported by video4linux?

Dunno, sorry. Juergen?


Oh, if you can, please check the Wake-on-LAN functionality on this board
(with vendor BIOS and LinuxBIOS). On the BCOM Winnet100 we're lucky,
it works out of the box! Seems to be implemented completely in hardware
on that board, so no LinuxBIOS code needed...


> Add support for TeleVideo TC7020.
> Signed-off-by: Kenji Noguchi <tokyo246 at gmail.com>
> 
> Index: src/mainboard/televideo/tc7020/Config.lb
> ===================================================================
> --- src/mainboard/televideo/tc7020/Config.lb	(revision 0)
> +++ src/mainboard/televideo/tc7020/Config.lb	(revision 0)
> @@ -0,0 +1,137 @@
> +##
> +## This file is part of the LinuxBIOS project.
> +##
> +## Copyright (C) 2007 Juergen Beisert <juergen at kreuzholzen.de>
> +##
> +## 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> +##
> +
> +if USE_FALLBACK_IMAGE
> +	default ROM_SECTION_SIZE = FALLBACK_SIZE
> +	default ROM_SECTION_OFFSET = (ROM_SIZE - FALLBACK_SIZE)
> +else
> +	default ROM_SECTION_SIZE = (ROM_SIZE - FALLBACK_SIZE)
> +	default ROM_SECTION_OFFSET = 0
> +end
> +default CONFIG_ROM_PAYLOAD_START = (0xffffffff - ROM_SIZE + ROM_SECTION_OFFSET + 1)
> +default PAYLOAD_SIZE = (ROM_SECTION_SIZE - ROM_IMAGE_SIZE)
> +default _ROMBASE = (CONFIG_ROM_PAYLOAD_START + PAYLOAD_SIZE)
> +default XIP_ROM_SIZE = 64 * 1024
> +default XIP_ROM_BASE = (_ROMBASE + ROM_IMAGE_SIZE - XIP_ROM_SIZE)
> +arch i386 end
> +driver mainboard.o
> +if HAVE_PIRQ_TABLE
> +	object irq_tables.o
> +end
> +makerule ./failover.E
> +	depends "$(MAINBOARD)/../../../arch/i386/lib/failover.c ./romcc"
> +	action "./romcc -E -O --label-prefix=failover -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/../../../arch/i386/lib/failover.c -o $@"
> +end
> +makerule ./failover.inc
> +	depends "$(MAINBOARD)/../../../arch/i386/lib/failover.c ./romcc"
> +	action "./romcc -O --label-prefix=failover -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/../../../arch/i386/lib/failover.c -o $@"
> +end
> +makerule ./auto.E
> +	# depends	"$(MAINBOARD)/auto.c option_table.h ./romcc"
> +	depends	"$(MAINBOARD)/auto.c ./romcc"
> +	action	"./romcc -E -O -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/auto.c -o $@"
> +end
> +makerule ./auto.inc
> +	# depends "$(MAINBOARD)/auto.c option_table.h ./romcc"
> +	depends "$(MAINBOARD)/auto.c ./romcc"
> +	action	"./romcc -O -I$(TOP)/src -I. $(CPPFLAGS) $(MAINBOARD)/auto.c -o $@"
> +end
> +mainboardinit cpu/x86/16bit/entry16.inc
> +mainboardinit cpu/x86/32bit/entry32.inc
> +ldscript /cpu/x86/16bit/entry16.lds
> +ldscript /cpu/x86/32bit/entry32.lds
> +if USE_FALLBACK_IMAGE
> +	mainboardinit cpu/x86/16bit/reset16.inc
> +	ldscript /cpu/x86/16bit/reset16.lds
> +else
> +	mainboardinit cpu/x86/32bit/reset32.inc
> +	ldscript /cpu/x86/32bit/reset32.lds
> +end
> +mainboardinit arch/i386/lib/cpu_reset.inc
> +mainboardinit arch/i386/lib/id.inc
> +ldscript /arch/i386/lib/id.lds
> +if USE_FALLBACK_IMAGE
> +	ldscript /arch/i386/lib/failover.lds
> +	mainboardinit ./failover.inc
> +end
> +mainboardinit cpu/x86/fpu/enable_fpu.inc
> +mainboardinit cpu/amd/model_gx1/cpu_setup.inc
> +mainboardinit cpu/amd/model_gx1/gx_setup.inc
> +mainboardinit ./auto.inc
> +
> +dir /pc80
> +config chip.h
> +

The section below may need smaller updates for your board later,
please check what parts of the hardware work or don't work
with the current code.

(Do you have a wiki account to create a status page? Contact Stefan
for an account otherwise).


> +chip northbridge/amd/gx1		# Northbridge
> +  device pci_domain 0 on		# PCI domain
> +    device pci 0.0 on end		# Host bridge
> +    chip southbridge/amd/cs5530		# Southbridge
> +      device pci 0f.0 on end		# Ethernet (onboard)

I think this is wrong, here's the lspci you posted a while ago:

tv:~# lspci -tvnn
-[0000:00]-+-00.0  Cyrix Corporation PCI Master [1078:0001]
           +-12.0  Cyrix Corporation 5530 Legacy [Kahlua] [1078:0100]
           +-12.1  Cyrix Corporation 5530 SMI [Kahlua] [1078:0101]
           +-12.2  Cyrix Corporation 5530 IDE [Kahlua] [1078:0102]
           +-12.3  Cyrix Corporation 5530 Audio [Kahlua] [1078:0103]
           +-12.4  Cyrix Corporation 5530 Video [Kahlua] [1078:0104]
           +-13.0  Compaq Computer Corporation ZFMicro Chipset USB [0e11:a0f8]
           \-15.0  National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller [100b:0020]

The 0f.0 line should be removed here.


> +      device pci 12.0 on		# ISA bridge
> +        chip superio/nsc/pc97317	# Super I/O

Can you run the latest version of 'superiotool -dV' on the board
(with the vendor BIOS)? I this really a PC97317 on your board, too?


> +          device pnp 2e.0 on		# PS/2 keyboard
> +            io 0x60 = 0x60
> +            io 0x62 = 0x64
> +            irq 0x70 = 1
> +          end
> +          device pnp 2e.1 on		# PS/2 mouse
> +            irq 0x70 = 12
> +          end
> +          device pnp 2e.2 on		# RTC, Advanced power control (APC)
> +            io 0x60 = 0x70
> +            irq 0x70 = 8
> +          end
> +          device pnp 2e.3 off		# Floppy (N/A on this board)

Does your board have a floppy connector?
 

> +            io 0x60 = 0x3f0
> +            irq 0x70 = 6
> +            drq 0x74 = 2
> +          end
> +          device pnp 2e.4 on		# Parallel port
> +            io 0x60 = 0x378
> +            irq 0x70 = 7
> +          end
> +          device pnp 2e.5 on		# COM2 (used for smartcard reader)

COM2 doesn't seem to be connected to a smartcard reader on your board,
looks like a normal serial port (from the manual). Correct?


> +            io 0x60 = 0x2f8
> +            irq 0x70 = 3
> +          end
> +          device pnp 2e.6 on		# COM1
> +            io 0x60 = 0x3f8
> +            irq 0x70 = 4
> +          end
> +          device pnp 2e.7 on		# GPIO
> +            io 0x60 = 0xe0
> +          end
> +          device pnp 2e.8 on		# Power management
> +            io 0x60 = 0xe8
> +          end
> +        end
> +      end
> +      device pci 12.1 off end		# SMI
> +      device pci 12.2 on end		# IDE
> +      device pci 12.3 on end		# Audio
> +      device pci 12.4 on end		# VGA (onboard)
> +      device pci 13.0 on end		# USB

Maybe add this here:

	device pci 15.0 on end		# Ethernet (onboard)

Can you confirm that this device is an onboard NIC?


> +      register "ide0_enable" = "1"
> +      register "ide1_enable" = "0"	# Not available/needed on this board

I assume there's one IDE connector on the board, correct? If you have
two (or none?) you could change these values here.


> +    end
> +  end
> +  chip cpu/amd/model_gx1		# CPU
> +  end
> +end
> Index: src/mainboard/televideo/tc7020/irq_tables.c
> ===================================================================
> --- src/mainboard/televideo/tc7020/irq_tables.c	(revision 0)
> +++ src/mainboard/televideo/tc7020/irq_tables.c	(revision 0)
> @@ -0,0 +1,49 @@
> +/*
> + * This file is part of the LinuxBIOS project.
> + *
> + * Copyright (C) 2007 Kenji Noguchi <tokyo246 at gmail.com>
> + *
> + * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> + */
> +
> +#include <arch/pirq_routing.h>
> +
> +const struct irq_routing_table intel_irq_routing_table = {
> +	PIRQ_SIGNATURE,  /* u32 signature */
> +	PIRQ_VERSION,    /* u16 version   */
> +	32+16*IRQ_SLOT_COUNT, /* There can be total 3 devices on the bus */
> +	0x00,		 /* Where the interrupt router lies (bus) */
> +	(0x1f<<3)|0x0,   /* Where the interrupt router lies (dev) */

This looks incorrect, according to your lspci this should probably be

        (0x12<<3)|0x0,

Did you verify that the PIRQ table works fine etc?


> +	0,		 /* IRQs devoted exclusively to PCI usage */
> +	0x1078,		 /* Vendor */
> +	0x0001,		 /* Device */
> +	0,		 /* Crap (miniport) */
> +	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
> +	0xf,		 /* u8 checksum. This has to be set to some
> +			    value that would give 0 after the sum of all
> +			    bytes for this structure (including checksum) */
> +	{
> +		/* bus,     dev|fn,   {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap},  slot, rfu */
> +		{0x00,(0x13<<3)|0x0, {{0x01, 0x0e00}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x00000}}, 0x0, 0x0},
> +		{0x00,(0x15<<3)|0x0, {{0x02, 0x0e00}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x00000}}, 0x0, 0x0},
> +		{0x00,(0x14<<3)|0x0, {{0x03, 0x0e00}, {0x00, 0x0000}, {0x00, 0x0000}, {0x00, 0x00000}}, 0x0, 0x0},

You don't have a 14.0 PCI device in your lspci, are you sure this last line should be here?

You posted a slightly different irq_tables.c in a mail with subject
'Re: [LinuxBIOS] VGA support for Geode GX1/CS5530' a while ago; which
one is correct?


> +	}
> +};
> +
> +unsigned long write_pirq_routing_table(unsigned long addr)
> +{
> +	return copy_pirq_routing_table(addr);
> +}
> +
> Index: src/mainboard/televideo/tc7020/Options.lb
> ===================================================================
> --- src/mainboard/televideo/tc7020/Options.lb	(revision 0)
> +++ src/mainboard/televideo/tc7020/Options.lb	(revision 0)
> @@ -0,0 +1,104 @@
> +##
> +## This file is part of the LinuxBIOS project.
> +##
> +## Copyright (C) 2007 Juergen Beisert <juergen at kreuzholzen.de>
> +## Copyright (C) 2007 Kenji Noguchi <tokyo246 at gmail.com>
> +##
> +## 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> +##
> +
> +uses HAVE_MP_TABLE
> +uses HAVE_PIRQ_TABLE
> +uses USE_FALLBACK_IMAGE
> +uses HAVE_FALLBACK_BOOT
> +uses HAVE_HARD_RESET
> +uses HAVE_OPTION_TABLE
> +uses USE_OPTION_TABLE
> +uses CONFIG_ROM_PAYLOAD
> +uses IRQ_SLOT_COUNT
> +uses MAINBOARD
> +uses MAINBOARD_VENDOR
> +uses MAINBOARD_PART_NUMBER
> +uses LINUXBIOS_EXTRA_VERSION
> +uses ARCH
> +uses FALLBACK_SIZE
> +uses STACK_SIZE
> +uses HEAP_SIZE
> +uses ROM_SIZE
> +uses ROM_SECTION_SIZE
> +uses ROM_IMAGE_SIZE
> +uses ROM_SECTION_SIZE
> +uses ROM_SECTION_OFFSET
> +uses CONFIG_ROM_PAYLOAD_START
> +uses PAYLOAD_SIZE
> +uses _ROMBASE
> +uses _RAMBASE
> +uses XIP_ROM_SIZE
> +uses XIP_ROM_BASE
> +uses CROSS_COMPILE
> +uses CC
> +uses HOSTCC
> +uses OBJCOPY
> +uses DEFAULT_CONSOLE_LOGLEVEL
> +uses MAXIMUM_CONSOLE_LOGLEVEL
> +uses CONFIG_CONSOLE_SERIAL8250
> +uses TTYS0_BAUD
> +uses TTYS0_BASE
> +uses TTYS0_LCS
> +uses CONFIG_COMPRESSED_PAYLOAD_LZMA
> +uses CONFIG_UDELAY_TSC
> +uses CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2
> +uses CONFIG_VIDEO_MB
> +uses CONFIG_SPLASH_GRAPHIC
> +uses CONFIG_GX1_VIDEO
> +uses CONFIG_GX1_VIDEOMODE
> +
> +## Enable VGA with a splash screen (only 640x480 to run on most monitors).
> +## We want to support up to 1024x768 at 16 so we need 2MiB video memory.
> +## Note: Higher resolutions might need faster SDRAM speed.
> +default CONFIG_GX1_VIDEO = 1
> +default CONFIG_GX1_VIDEOMODE = 0
> +default CONFIG_SPLASH_GRAPHIC = 1
> +default CONFIG_VIDEO_MB = 2
> +
> +default ROM_SIZE = 256 * 1024
> +default MAINBOARD_VENDOR = "TeleVideo"
> +default MAINBOARD_PART_NUMBER = "TC7020"
> +default HAVE_FALLBACK_BOOT = 1
> +default HAVE_MP_TABLE = 0
> +default HAVE_HARD_RESET = 0
> +default CONFIG_UDELAY_TSC = 1
> +default CONFIG_TSC_X86RDTSC_CALIBRATE_WITH_TIMER2 = 1
> +default HAVE_PIRQ_TABLE = 1
> +default IRQ_SLOT_COUNT = 3	# Soldered NIC, internal USB, mini PCI slot

This needs an update if irq_tables.c is changed.


> +default HAVE_OPTION_TABLE = 0
> +default ROM_IMAGE_SIZE = 64 * 1024
> +default FALLBACK_SIZE = 128 * 1024
> +default STACK_SIZE = 8 * 1024
> +default HEAP_SIZE = 16 * 1024
> +default USE_OPTION_TABLE = 0
> +default _RAMBASE = 0x00004000
> +default CONFIG_ROM_PAYLOAD = 1
> +default CROSS_COMPILE = ""
> +default CC = "$(CROSS_COMPILE)gcc "
> +default HOSTCC = "gcc"
> +default CONFIG_CONSOLE_SERIAL8250 = 1
> +default TTYS0_BAUD = 115200
> +default TTYS0_BASE = 0x3f8
> +default TTYS0_LCS = 0x3		# 8n1
> +default DEFAULT_CONSOLE_LOGLEVEL = 6
> +default MAXIMUM_CONSOLE_LOGLEVEL = 6
> +
> +end
> Index: src/mainboard/televideo/tc7020/chip.h
> ===================================================================
> --- src/mainboard/televideo/tc7020/chip.h	(revision 0)
> +++ src/mainboard/televideo/tc7020/chip.h	(revision 0)
> @@ -0,0 +1,26 @@
> +/*
> + * This file is part of the LinuxBIOS project.
> + *
> + * Copyright (C) 2007 Juergen Beisert <juergen at kreuzholzen.de>
> + * Copyright (C) 2007 Kenji Noguchi <tokyo246 at gmail.com>
> + *
> + * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> + */
> +
> +extern struct chip_operations mainboard_televideo_tc7020_ops;
> +
> +struct mainboard_televideo_tc7020_config {
> +	int nothing;
> +};
> Index: src/mainboard/televideo/tc7020/auto.c
> ===================================================================
> --- src/mainboard/televideo/tc7020/auto.c	(revision 0)
> +++ src/mainboard/televideo/tc7020/auto.c	(revision 0)
> @@ -0,0 +1,53 @@
> +/*
> + * This file is part of the LinuxBIOS project.
> + *
> + * Copyright (C) 2007 Juergen Beisert <juergen at kreuzholzen.de>
> + *
> + * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> + */
> +
> +#define ASSEMBLY 1
> +
> +#include <stdint.h>
> +#include <device/pci_def.h>
> +#include <arch/io.h>
> +#include <device/pnp_def.h>
> +#include <arch/romcc_io.h>
> +#include <arch/hlt.h>
> +#include "pc80/serial.c"
> +#include "arch/i386/lib/console.c"
> +#include "ram/ramtest.c"
> +#include "northbridge/amd/gx1/raminit.c"
> +#include "superio/nsc/pc97317/pc97317_early_serial.c"
> +#include "cpu/x86/bist.h"
> +
> +#define SERIAL_DEV PNP_DEV(0x2e, PC97317_SP1)
> +
> +static void main(unsigned long bist)
> +{
> +	/* Initialize the serial console. */
> +	pc97317_enable_serial(SERIAL_DEV, TTYS0_BASE);
> +	uart_init();
> +	console_init();
> +
> +	/* Halt if there was a built in self test failure. */
> +	report_bist_failure(bist);
> +
> +	/* Initialize RAM. */
> +	sdram_init();
> +
> +	/* Check whether RAM works. */
> +	/* ram_check(0, 640 * 1024); */
> +}
> Index: src/mainboard/televideo/tc7020/mainboard.c
> ===================================================================
> --- src/mainboard/televideo/tc7020/mainboard.c	(revision 0)
> +++ src/mainboard/televideo/tc7020/mainboard.c	(revision 0)
> @@ -0,0 +1,73 @@
> +/*
> + * This file is part of the LinuxBIOS project.
> + *
> + * Copyright (C) 2007 Kenji Noguchi <tokyo246 at gmail.com>
> + *
> + * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> + */
> +
> +/*
> + * TeleVideo TC7020 specific IRQ wiring
> + * USB          00:13.0  -> PINTA -> IRQ 11
> + * NIC          00:15.0  -> PINTB -> IRQ 10
> + * MiniPCI slot 00:14.0  -> PINTC -> IRQ 09
> + */
> +
> +#include <console/console.h>
> +#include <device/device.h>
> +#include <device/pci.h>
> +#include <device/pci_ops.h>
> +#include <device/pci_ids.h>
> +#include <pc80/mc146818rtc.h>
> +#include "chip.h"
> +
> +/* devices/pci_device.c doesn't have this in a header file */
> +void pci_assign_irqs(unsigned bus, unsigned slot,
> +		     const unsigned char pIntAtoD[4]);
> +
> +static const unsigned char usb_irq[4] = {11,0,0,0};
> +static const unsigned char nic_irq[4] = {10,0,0,0};
> +static const unsigned char minipci_irq[4] = {9,0,0,0};
> +
> +static void pci_routing_fixup(struct device *dev)
> +{
> +	device_t pdev;
> +	if (!dev)
> +		return;
> +
> +	// CS5530A legacy bridge IRQ sterring registers
> +	pdev = dev_find_slot(0, (0x12 << 3) + 0);
> +	pci_write_config8(pdev, 0x5c, 0xab);
> +	pci_write_config8(pdev, 0x5d, 0x09);
> +
> +	pci_assign_irqs(0, 0x13, usb_irq);
> +	pci_assign_irqs(0, 0x15, nic_irq);
> +	pci_assign_irqs(0, 0x14, minipci_irq);
> +}
> +
> +static void init(struct device *dev) {
> +	pci_routing_fixup(dev);
> +}

Not sure about this part, please check the patch with
subject '[LinuxBIOS] [PATH] irq routing on cs5530a/cs5536'
which probably does similar things.

I haven't yet had the time to review it. Can you confirm
that dropping the above code and using that patch
works fine? I think we should apply the patch, but this needs
a bit of testing as it effects all GX1 boards.

After the patch is in svn, all PIRQ stuff should be in irq_tables.c
only IMO.


> +
> +static void enable_dev(struct device *dev)
> +{
> +	dev->ops->init = init;
> +}
> +
> +struct chip_operations mainboard_televideo_tc7020_ops = {
> +	CHIP_NAME("TeleVideo TC7020 Mainboard WBTG_Rev1.1")

The "WBTG_Rev1.1" is not required here, we don't do that for other
boards. Feel free to add it to the wiki page, though.


> +	.enable_dev = enable_dev,
> +};
> +
> Index: targets/televideo/tc7020/Config.lb
> ===================================================================
> --- targets/televideo/tc7020/Config.lb	(revision 0)
> +++ targets/televideo/tc7020/Config.lb	(revision 0)
> @@ -0,0 +1,52 @@
> +##
> +## This file is part of the LinuxBIOS project.
> +##
> +## Copyright (C) 2007 Juergen Beisert <juergen at kreuzholzen.de>
> +## Copyright (C) 2007 Kenji Noguchi <tokyo246 at gmail.com>
> +##
> +## 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> +##
> +
> +target tc7020
> +mainboard televideo/tc7020
> +
> +option ROM_SIZE = 256 * 1024
> +
> +## Enable VGA with a splash screen (only 640x480 to run on most monitors).
> +## We want to support up to 1024x768 at 16 so we need 2MiB video memory.
> +## Note: Higher resolutions might need faster SDRAM speed.
> +option CONFIG_GX1_VIDEO = 1
> +option CONFIG_GX1_VIDEOMODE = 0
> +option CONFIG_SPLASH_GRAPHIC = 1
> +option CONFIG_VIDEO_MB = 2
> +
> +option DEFAULT_CONSOLE_LOGLEVEL = 6
> +option MAXIMUM_CONSOLE_LOGLEVEL = 6
> +
> +romimage "normal"
> +	option USE_FALLBACK_IMAGE = 0
> +	option ROM_IMAGE_SIZE = 64 * 1024
> +	option LINUXBIOS_EXTRA_VERSION = ".0Normal"
> +	payload /var/tmp/images/filo.elf
> +end
> +
> +romimage "fallback"
> +	option USE_FALLBACK_IMAGE = 1
> +	option ROM_IMAGE_SIZE = 64 * 1024
> +	option LINUXBIOS_EXTRA_VERSION = ".0Fallback"
> +	payload /var/tmp/images/filo.elf
> +end
> +
> +buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback"


Looks nice otherwise. As soon as the PIRQ issue is cleared up we can
commit.


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org




More information about the coreboot mailing list