Difference between revisions of "Board:axus/tc320"

From coreboot
Jump to: navigation, search
(10 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
 
|CPU_status = OK
 
|CPU_status = OK
|CPU_comments =  
+
|CPU_comments = Geode GX1, Pentium 1 like, MMX support, no MTRR.
 +
|CPU_L1_status = OK
 +
|CPU_L1_comments = 16kiB unified cache.
 +
|CPU_L2_status = N/A
 +
|CPU_L2_comments = This CPU does not support L2 cache.
 +
|CPU_L3_status = N/A
 +
|CPU_L3_comments = This CPU does not support L3 cache.
 +
|CPU_multicore_status = N/A
 +
|CPU_virt_status = N/A
 +
|CPU_multiple_status = N/A
  
 +
|RAM_EDO_status = N/A
 +
|RAM_DDR2_status = N/A
 +
|RAM_DDR3_status = N/A
 +
|RAM_DDR_status = N/A
 
|RAM_SDRAM_status = OK
 
|RAM_SDRAM_status = OK
|RAM_SDRAM_comments = works fine with a 64MiB DIMM
+
|RAM_SDRAM_comments = Works fine with a 64MiB DIMM at 120MHz (CPU core clock / 2.5).
 
+
 
|RAM_SODIMM_status = N/A
 
|RAM_SODIMM_status = N/A
|RAM_SODIMM_comments =
 
 
 
|RAM_dualchannel_status = N/A
 
|RAM_dualchannel_status = N/A
|RAM_dualchannel_comments =
 
 
 
|RAM_ecc_status = N/A
 
|RAM_ecc_status = N/A
|RAM_ecc_comments =
 
 
|IDE_status = N/A
 
|IDE_comments =
 
  
 +
|IDE_status = OK
 +
|IDE_comments = Tested with a special cable (44pin/2mm to 40pin/2.54mm) and an ordinary 3.5" disk (UDMA2: 17.45 MB/sec).
 
|IDE_25_status = OK
 
|IDE_25_status = OK
|IDE_25_comments = Tested with 5.25" disk.
 
 
 
|IDE_CF_status = Untested
 
|IDE_CF_status = Untested
 
|IDE_CF_comments =
 
|IDE_CF_comments =
 
 
|DiskOnChip_status = Untested
 
|DiskOnChip_status = Untested
 
|DiskOnChip_comments =  
 
|DiskOnChip_comments =  
 
 
|SATA_status = N/A
 
|SATA_status = N/A
 
|SATA_comments =
 
|SATA_comments =
 
 
|USB_status = OK
 
|USB_status = OK
|USB_comments =  
+
|USB_comments = USB harddisk as backup media works since month.
 
+
 
|Onboard_VGA_status = OK
 
|Onboard_VGA_status = OK
 
|Onboard_VGA_comments = VGA support in LinuxBIOS works fine (e.g. for displaying a boot logo), for console/X11 you need a special kernel console and Xorg driver.
 
|Onboard_VGA_comments = VGA support in LinuxBIOS works fine (e.g. for displaying a boot logo), for console/X11 you need a special kernel console and Xorg driver.
 
 
|Onboard_ethernet_status = OK
 
|Onboard_ethernet_status = OK
 
|Onboard_ethernet_comments =  
 
|Onboard_ethernet_comments =  
 
 
|Onboard_audio_status = OK
 
|Onboard_audio_status = OK
|Onboard_audio_comments = Works with a special SMI polling driver, but not perfectly
+
|Onboard_audio_comments = Tested with a special realtime SMI polling (no regular IRQs from the audio hardware) and Kahlua ALSA driver.
 
+
 
|Onboard_firewire_status = N/A
 
|Onboard_firewire_status = N/A
 
|Onboard_firewire_comments =
 
|Onboard_firewire_comments =
  
 
|ISA_cards_status = N/A
 
|ISA_cards_status = N/A
|ISA_cards_comments =
 
 
 
|PCI_cards_status = N/A
 
|PCI_cards_status = N/A
|PCI_cards_comments =
 
 
 
|AGP_cards_status = N/A
 
|AGP_cards_status = N/A
|AGP_cards_comments =
 
 
 
|PCIE_cards_status = N/A
 
|PCIE_cards_status = N/A
|PCIE_cards_comments =
 
 
 
|PCIE_x1_status = N/A
 
|PCIE_x1_status = N/A
|PCIE_x1_comments =
 
 
 
|PCIE_x2_status = N/A
 
|PCIE_x2_status = N/A
|PCIE_x2_comments =
 
 
 
|PCIE_x4_status = N/A
 
|PCIE_x4_status = N/A
|PCIE_x4_comments =
 
 
 
|PCIE_x8_status = N/A
 
|PCIE_x8_status = N/A
|PCIE_x8_comments =
 
 
 
|PCIE_x16_status = N/A
 
|PCIE_x16_status = N/A
|PCIE_x16_comments =
 
 
 
|PCIE_x32_status = N/A
 
|PCIE_x32_status = N/A
|PCIE_x32_comments =
 
 
 
|HTX_status = N/A
 
|HTX_status = N/A
|HTX_comments =
 
  
 
|Floppy_status = N/A
 
|Floppy_status = N/A
 
|Floppy_comments = No connector provided.
 
|Floppy_comments = No connector provided.
 
 
|COM1_status = OK
 
|COM1_status = OK
|COM1_comments =
 
 
 
|COM2_status = OK
 
|COM2_status = OK
|COM2_comments =
 
 
 
|PP_status = Untested
 
|PP_status = Untested
|PP_comments =
 
 
 
|PS2_keyboard_status = OK
 
|PS2_keyboard_status = OK
|PS2_keyboard_comments =
 
 
 
|PS2_mouse_status = OK
 
|PS2_mouse_status = OK
|PS2_mouse_comments =
 
  
|Sensors_status = Untested
+
|Sensors_status = OK
 
|Sensors_comments = This CPU does not need a fan.
 
|Sensors_comments = This CPU does not need a fan.
 
 
|CPUfreq_status = OK
 
|CPUfreq_status = OK
 
|CPUfreq_comments = Frequency Scaling on this CPU is useless. Stop clock on HLT saves more power (enabled by Linux as default).
 
|CPUfreq_comments = Frequency Scaling on this CPU is useless. Stop clock on HLT saves more power (enabled by Linux as default).
 
 
|Flashrom_status = Untested
 
|Flashrom_status = Untested
 
|Flashrom_comments =  
 
|Flashrom_comments =  
  
 
|ACPI_status = N/A
 
|ACPI_status = N/A
|ACPI_comments =
+
|Smartcard_status = N/A
 +
|Onboard_CF_status = N/A
 +
|Game_port_status = N/A
 +
|IR_status = N/A
 +
|Speaker_status = Untested
 +
|Watchdog_status = N/A
 +
|Poweroff_status = Untested
 +
|Poweroff_comments = Could be done in the Super I/O but needs a piece of software to do so.
 +
|Powersave_status = Untested
 +
|Powersave_comments = Hardware supports dozens of such features, but someone must write the software to control them.
  
 +
|WakeOnLAN_status = Untested
 
|HPET_status = N/A
 
|HPET_status = N/A
|HPET_comments =
 
 
 
|Reboot_status = OK
 
|Reboot_status = OK
|Reboot_comments = Linux supports this chipset to force a hard reset
+
|Reboot_comments = Linux supports this chipset to force a hard reset.
 +
|CAN_bus_status = N/A
 +
|Onboard_modem_status = N/A
 +
|Onboard_PCMCIA_status = N/A
  
 
}}
 
}}
Line 157: Line 132:
 
The following information was gathered on a running Linux 2.6.21 system, booted via LinuxBIOS:
 
The following information was gathered on a running Linux 2.6.21 system, booted via LinuxBIOS:
  
'''lspci -tv'''
+
'''lspci -tvnn'''
  
  -[0000:00]-+-00.0  Cyrix Corporation PCI Master
+
  -[0000:00]-+-00.0  Cyrix Corporation PCI Master [1078:0001]
             +-0f.0  Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
+
             +-0e.0  Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139]
             +-12.0  Cyrix Corporation 5530 Legacy [Kahlua]
+
             +-12.0  Cyrix Corporation 5530 Legacy [Kahlua] [1078:0100]
             +-12.1  Cyrix Corporation 5530 SMI [Kahlua]
+
             +-12.1  Cyrix Corporation 5530 SMI [Kahlua] [1078:0101]
             +-12.2  Cyrix Corporation 5530 IDE [Kahlua]
+
             +-12.2  Cyrix Corporation 5530 IDE [Kahlua] [1078:0102]
             +-12.3  Cyrix Corporation 5530 Audio [Kahlua]
+
             +-12.3  Cyrix Corporation 5530 Audio [Kahlua] [1078:0103]
             +-12.4  Cyrix Corporation 5530 Video [Kahlua]
+
             +-12.4  Cyrix Corporation 5530 Video [Kahlua] [1078:0104]
             \-13.0  Compaq Computer Corporation ZFMicro Chipset USB
+
             \-13.0  Compaq Computer Corporation ZFMicro Chipset USB [0e11:a0f8]
  
 
'''/proc/cpuinfo'''
 
'''/proc/cpuinfo'''
Line 258: Line 233:
 
  NMI:          0
 
  NMI:          0
 
  ERR:          0
 
  ERR:          0
 +
 +
== Building a LinuxBIOS image ==
 +
 +
$ cd targets
 +
$ ./buildtarget axus/tc320
 +
$ cd axus/tc320/tc320
 +
$ LANG=C make
 +
 +
The '''LANG=C''' is only for those users (like me) that uses a localised system. Determining some include pathes fails in LB's build system, if the GCC answers in German...
 +
 +
== Using the hardware with a current kernel ==
 +
 +
The current 2.6.22/23 kernel does not know the CS5530 interrupt router. So it is impossible to let the kernel itself setup PCI's interrupt routing. Even if you provide the kernel with a valid interrupt routing table (PIRQ). No interrupts will work as the interrupt routing registers are still left at their reset values.
 +
The small patch below solves this issue (it was rejected in mainline as it breaks various standard BIOS based Geode systems, as they were shipped with broken PIRQ tables [http://lkml.org/lkml/2006/11/24/47]).
 +
 +
Since kernel 2.6.23 Geode chipset access macros are now working as expected. Due to this, some chipset tweaks embedded in the kernel are working now. One of these tweaks setup the performance incrementor for a 233MHz CPU. This may fail on a 300MHz CPU now (additionally it depends on the SDRAM speed). The symptom of this failure is a freezing system after running a while (after warm up). Take a look into '''arch/i386/kernel/cpu/cyrix.c''', function '''set_cx86_inc()'''. Correct the setting to:
 +
setCx86(CX86_PCR0, getCx86(CX86_PCR0) | 0x05);
 +
when you run a 300MHz CPU.
 +
 +
== How to build a root filesystem ==
 +
 +
This question is easy to answer. Download the following archives:
 +
 +
* [http://www.pengutronix.de/software/geode/OSELAS.BSP-JB-GeoServ-2.tgz Board Support Package (BSP)]
 +
* [http://www.pengutronix.de/software/ptxdist/download/v1.0/ptxdist-1.0.2.tgz Build System]
 +
* [http://www.pengutronix.de/software/ptxdist/download/v1.0/ptxdist-1.0.2-patches.tgz Patch package]
 +
* [http://www.pengutronix.de/software/ptxdist/download/v1.0/ptxdist-1.0.0-projects.tgz Generic projects package]
 +
* [http://www.pengutronix.de/oselas/toolchain/download/OSELAS.Toolchain-1.1.1.tar.bz2 Toolchain package]
 +
 +
Start with the BSP, extract it and read the quickstart in Documentation/GeoTerm-Quickstart.pdf. It will guide you through the steps that are required to:
 +
 +
* get a generic project build system,
 +
* get a cross toolchain for the Geode GX1,
 +
* configure the BSP and build it,
 +
* bring this target up and running with coreboot and GNU/Linux.
 +
 +
The BSP builds all parts to run this Geode GX1 system. This includes coreboot (LinuxBIOS) and the kernel and various network services like NFS, smb, ssh but no video!.
 +
 +
Note: This BSP includes all required patches for the kernel. You won't need the patches below.
  
 
== Required patches ==
 
== Required patches ==

Revision as of 14:27, 16 November 2008

This page describes how to use the AXUS TC320 thin client with LinuxBIOS.

Status

Device/functionality Status Comments
CPU
CPU works OK Geode GX1, Pentium 1 like, MMX support, no MTRR.
L1 cache enabled OK 16kiB unified cache.
L2 cache enabled N/A This CPU does not support L2 cache.
L3 cache enabled N/A This CPU does not support L3 cache.
Multiple CPU support N/A
Multi-core support N/A
Hardware virtualization N/A
RAM
EDO N/A
SDRAM OK Works fine with a 64MiB DIMM at 120MHz (CPU core clock / 2.5).
SO-DIMM N/A
DDR N/A
DDR2 N/A
DDR3 N/A
Dual channel support N/A
ECC support N/A
On-board Hardware
On-board IDE 3.5" OK Tested with a special cable (44pin/2mm to 40pin/2.54mm) and an ordinary 3.5" disk (UDMA2: 17.45 MB/sec).
On-board IDE 2.5" OK
On-board SATA N/A
On-board SCSI Unknown
On-board USB OK USB harddisk as backup media works since month.
On-board VGA OK VGA support in LinuxBIOS works fine (e.g. for displaying a boot logo), for console/X11 you need a special kernel console and Xorg driver.
On-board ethernet OK
On-board audio OK Tested with a special realtime SMI polling (no regular IRQs from the audio hardware) and Kahlua ALSA driver.
On-board modem N/A
On-board FireWire N/A
On-board smartcard reader N/A
On-board CompactFlash N/A
On-board PCMCIA N/A
Add-on slots/cards
ISA add-on cards N/A
Audio/Modem-Riser (AMR/CNR) cards Unknown
PCI add-on cards N/A
Mini-PCI add-on cards Unknown
PCI-X add-on cards Unknown
AGP graphics cards N/A
PCI Express x1 add-on cards N/A
PCI Express x2 add-on cards N/A
PCI Express x4 add-on cards N/A
PCI Express x8 add-on cards N/A
PCI Express x16 add-on cards N/A
PCI Express x32 add-on cards N/A
HTX add-on cards N/A
Legacy / Super I/O
Floppy N/A No connector provided.
Serial port 1 (COM1) OK
Serial port 2 (COM2) OK
Parallel port Untested
PS/2 keyboard OK
PS/2 mouse OK
Game port N/A
Infrared N/A
PC speaker Untested
DiskOnChip Untested
Miscellaneous
Sensors / fan control OK This CPU does not need a fan.
Hardware watchdog N/A
SMBus Unknown
CAN bus N/A
CPU frequency scaling OK Frequency Scaling on this CPU is useless. Stop clock on HLT saves more power (enabled by Linux as default).
Other powersaving features Untested Hardware supports dozens of such features, but someone must write the software to control them.
ACPI N/A
Reboot OK Linux supports this chipset to force a hard reset.
Poweroff Untested Could be done in the Super I/O but needs a piece of software to do so.
Suspend Unknown
Nonstandard LEDs Unknown
High precision event timers (HPET) N/A
Random number generator (RNG) Unknown
Wake on modem ring Unknown
Wake on LAN Untested
Wake on keyboard Unknown
Wake on mouse Unknown
Flashrom Untested

Hardware

The AXUS TC320 Winterminal.
  • GX1-300B-85-20 Cyrix/National/AMD Main CPU with 300MHz core clock
  • CS5530A-UCE part of the chipset, Cyrix/National/AMD companion device
  • PC97317 Super IO
  • RTL8139C Realtec network controller
  • Pm29F002T DIL32 256kiB Flash memory to boot
  • LM4546 National, AC97 AD/DA
  • DOC2000 DIL32 16MiB DiskOnChip
  • SDRAM 64MiB SDRAM with 133MHz/CL2 capability as DIMM

Connectors (internal and external)

  • 1x PS/2 keyboard
  • 1x PS/2 mouse
  • 2x serial port (ttyS0/ttyS1)
  • 1x Parallel port
  • 2x USB (OHCI)
  • 1x DSUB15 VGA analouge
  • 1x RJ45
  • Audio: Line-in, line-out, Mic
  • 1x 44pin 2mm 2.5" harddisk connector

Detailed System Information

Block diagram

Axus schaubild.png

The following information was gathered on a running Linux 2.6.21 system, booted via LinuxBIOS:

lspci -tvnn

-[0000:00]-+-00.0  Cyrix Corporation PCI Master [1078:0001]
           +-0e.0  Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139]
           +-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]

/proc/cpuinfo

processor       : 0
vendor_id       : Geode by NSC
cpu family      : 5
model           : 9
model name      : Geode(TM) Integrated Processor by National Semi
stepping        : 2
cpu MHz         : 300.691
cache size      : 16 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu tsc msr cx8 cmov mmx cxmmx
bogomips        : 602.1
clflush size    : 32

/proc/iomem

00000000-000006d3 : reserved
000006d4-0009ffff : System RAM
000a0000-000bffff : Video RAM area
000f0000-000fffff : System ROM
00100000-01bfffff : System RAM
  00100000-00253ad9 : Kernel code
  00253ada-002a5f2b : Kernel data
40000000-40000fff : scratch_pad_ram
40008000-400080ff : bus_interface
  40008000-400080ff : Geode GX1 Bus Interface
40008100-400082ff : video_pipeline
40008300-400083ff : display_control
40008400-400084ff : memory_control
  40008400-400084ff : Geode GX1 Memory Control
40008500-40008fff : power_control.0
40400000-407fffff : smm_area.0
40800000-487fffff : video_memory
febfb000-febfbfff : 0000:00:12.4
febfc000-febfcfff : 0000:00:13.0
  febfc000-febfcfff : ohci_hcd
febfd000-febfd0ff : 0000:00:0e.0
  febfd000-febfd0ff : 8139too
febfe000-febfe0ff : 0000:00:12.1
  febfe000-febfe0ff : CS5530a (Kahlua) SMI handler
febff000-febff07f : 0000:00:12.3
fffc0000-ffffffff : flash_memory.0

/proc/ioports

0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : 0000:00:12.2
01f0-01f7 : 0000:00:12.2
  01f0-01f7 : ide0
02f8-02ff : serial
0376-0376 : 0000:00:12.2
03f6-03f6 : 0000:00:12.2
  03f6-03f6 : ide0
03f8-03ff : serial
0cf8-0cff : PCI conf1
1000-10ff : 0000:00:0e.0
  1000-10ff : 8139too
1400-147f : 0000:00:12.2
  1400-1407 : ide0
  1408-140f : ide1

/proc/interrupts

          CPU0
  0:   86290487    XT-PIC-XT        timer
  2:          0    XT-PIC-XT        cascade
  4:      17272    XT-PIC-XT        serial
  8:          0    XT-PIC-XT        rtc
 11:          0    XT-PIC-XT        ohci_hcd:usb1
 14:     410947    XT-PIC-XT        ide0
 15:    5952261    XT-PIC-XT        eth0
NMI:          0
ERR:          0

Building a LinuxBIOS image

$ cd targets
$ ./buildtarget axus/tc320
$ cd axus/tc320/tc320
$ LANG=C make

The LANG=C is only for those users (like me) that uses a localised system. Determining some include pathes fails in LB's build system, if the GCC answers in German...

Using the hardware with a current kernel

The current 2.6.22/23 kernel does not know the CS5530 interrupt router. So it is impossible to let the kernel itself setup PCI's interrupt routing. Even if you provide the kernel with a valid interrupt routing table (PIRQ). No interrupts will work as the interrupt routing registers are still left at their reset values. The small patch below solves this issue (it was rejected in mainline as it breaks various standard BIOS based Geode systems, as they were shipped with broken PIRQ tables [1]).

Since kernel 2.6.23 Geode chipset access macros are now working as expected. Due to this, some chipset tweaks embedded in the kernel are working now. One of these tweaks setup the performance incrementor for a 233MHz CPU. This may fail on a 300MHz CPU now (additionally it depends on the SDRAM speed). The symptom of this failure is a freezing system after running a while (after warm up). Take a look into arch/i386/kernel/cpu/cyrix.c, function set_cx86_inc(). Correct the setting to:

setCx86(CX86_PCR0, getCx86(CX86_PCR0) | 0x05);

when you run a 300MHz CPU.

How to build a root filesystem

This question is easy to answer. Download the following archives:

Start with the BSP, extract it and read the quickstart in Documentation/GeoTerm-Quickstart.pdf. It will guide you through the steps that are required to:

  • get a generic project build system,
  • get a cross toolchain for the Geode GX1,
  • configure the BSP and build it,
  • bring this target up and running with coreboot and GNU/Linux.

The BSP builds all parts to run this Geode GX1 system. This includes coreboot (LinuxBIOS) and the kernel and various network services like NFS, smb, ssh but no video!.

Note: This BSP includes all required patches for the kernel. You won't need the patches below.

Required patches

  • This patch is needed to let Linux know the Cyrix 5530 interrupt router.
  • This patch is needed as someone has overoptimised chipset tweaks so the used access macros failed. This patch is required only for kernels up to 2.6.22. From Linux 2.6.23 on its part of mainline.
Creative Commons License
Creative Commons Attribution icon
This file is licensed under Creative Commons Attribution 2.5 License.
In short: you are free to distribute and modify the file as long as you attribute its author(s) or licensor(s).