[LinuxBIOS] Adding IGEL-316 mainboard

Juergen Beisert juergen127 at kreuzholzen.de
Sat May 12 17:59:51 CEST 2007


On Saturday 12 May 2007 15:24, Uwe Hermann wrote:
> On Sat, May 12, 2007 at 12:26:51PM +0200, Juergen Beisert wrote:
> > > What's the status of this code? Does it boot a payload correctly? Does
> > > it fully boot a Linux kernel? Which hardware works, which doesn't when
> > > booted with LinuxBIOS?
> >
> > Status is "tested on my boards" (I'm currenlty using 5 IGEL-316 at home).
> > It works with etherboot and FILO. And boots my 2.6.21 kernel with Video
> > and without (one IGEL is my file server, the others are small X
> > terminals, connected to my main workstation).
>
> So X11 works? Sound? Ethernet? USB? Booting from USB? All the other
> hardware such as keyboard, mouse, parallel port etc. etc?

Ok, here we go:

- X11 works fine. But not with the official geode driver from Xorg. This
  driver relies also on the SMM, so it fails on my LinuxBIOSv2 based system
- With my own Xorg driver implementation it works fine!
- Sound: I can play mp3 with "madplay". But only on a system with no other
  load. My driver must poll the SMI registers to know when the sound DMA
  finishes a data block. I need to play with priorities and maybe RT Preempt
  to ensure my polling routine will always get the CPU when there is the need.
  Otherwise system hangs. The sound DMA seems to be a fragile beast.
- Ethernet: My onboard RTL8139C works since month. All systems are running "in
  production". My Geode based fileserver 24hours at 365days...
- Booting from USB? Not tried yet. Only etherboot and FILO (harddisk). But
  connecting memory sticks and MP3 players works fine (very important for my
  children!).
- Keyboard: PS/2 and USB based keyboards are working fine
- Mouse: PS/2 and USB based mice are working fine
- LPT: Don't know. Never tried.

> > > Is the above correct for the Winnet? What does 'lspnp -v' report when
> > > booted from the proprietary BIOS?
> >
> > As I stated. I copied it from the eaglelion/5bcm and modified it until it
> > works on my hardware...

This is from the machine I'm currently write this mail (X terminal):

root at finas:~ lspci -tv
-[0000:00]-+-00.0  Cyrix Corporation PCI Master
           +-0f.0  Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
           +-12.0  Cyrix Corporation 5530 Legacy [Kahlua]
           +-12.1  Cyrix Corporation 5530 SMI [Kahlua]
           +-12.2  Cyrix Corporation 5530 IDE [Kahlua]
           +-12.3  Cyrix Corporation 5530 Audio [Kahlua]
           +-12.4  Cyrix Corporation 5530 Video [Kahlua]
           \-13.0  Compaq Computer Corporation ZFMicro Chipset USB

root at finas:~ lspci -v
00:00.0 Host bridge: Cyrix Corporation PCI Master
        Flags: bus master, medium devsel, latency 0

00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: Realtek Semiconductor Co., Ltd. RT8139
        Flags: bus master, medium devsel, latency 64, IRQ 15
        I/O ports at 1000 [size=256]
        Memory at febfd000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

00:12.0 ISA bridge: Cyrix Corporation 5530 Legacy [Kahlua] (rev 30)
        Flags: bus master, medium devsel, latency 0

00:12.1 Bridge: Cyrix Corporation 5530 SMI [Kahlua]
        Flags: medium devsel
        Memory at febfe000 (32-bit, non-prefetchable) [size=256]

00:12.2 IDE interface: Cyrix Corporation 5530 IDE [Kahlua] (prog-if 80 [Master])
        Flags: medium devsel
        [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
        [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
        [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
        [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
        I/O ports at 1400 [size=128]

00:12.3 Multimedia audio controller: Cyrix Corporation 5530 Audio [Kahlua]
        Flags: medium devsel
        Memory at febff000 (32-bit, non-prefetchable) [size=128]

00:12.4 VGA compatible controller: Cyrix Corporation 5530 Video [Kahlua] (prog-if 00 [VGA])
        Flags: medium devsel
        Memory at febfb000 (32-bit, non-prefetchable) [size=4K]

00:13.0 USB Controller: Compaq Computer Corporation ZFMicro Chipset USB (rev 06) (prog-if 10 [OHCI])
        Subsystem: Compaq Computer Corporation ZFMicro Chipset USB
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at febfc000 (32-bit, non-prefetchable) [size=4K]


root at finas:~ cat /proc/interrupts
           CPU0
  0:     382432    XT-PIC-XT        timer
  1:      14931    XT-PIC-XT        i8042
  2:          0    XT-PIC-XT        cascade
  4:          3    XT-PIC-XT        serial
  8:          0    XT-PIC-XT        rtc
 11:          0    XT-PIC-XT        ohci_hcd:usb1
 12:      74170    XT-PIC-XT        i8042
 15:     435969    XT-PIC-XT        eth0
NMI:          0
ERR:          0


root at finas:~ cat /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
  40000000-40000fff : Geode GX1 Framebuffer
40008000-400080ff : bus_interface
  40008000-400080ff : Geode GX1 Bus Interface
40008100-400082ff : video_pipeline
  40008100-400082ff : Geode GX1 Framebuffer
40008300-400083ff : display_control
  40008300-400083ff : Geode GX1 Framebuffer
40008400-400084ff : memory_control
  40008400-400084ff : Geode GX1 Memory Control
40008500-40008fff : power_control.0
40400000-407fffff : smm_area.0
40800000-487fffff : video_memory
  40800000-487fffff : Geode GX1 Framebuffer
febfb000-febfbfff : 0000:00:12.4
  febfb000-febfbfff : Geode GX1 Framebuffer
febfc000-febfcfff : 0000:00:13.0
  febfc000-febfcfff : ohci_hcd
febfd000-febfd0ff : 0000:00:0f.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

root at finas:~ cat /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.14
clflush size    : 32

> I have uploaded a few photos, see here:
> http://linuxbios.org/ASI_MB-5BLMP_Build_Tutorial
>
> A photo of the PCB is here:
> http://linuxbios.org/images/1/1f/Igel_winnet3_3.jpg

Looks completly different to my mainboard.

> > > > Index: LinuxBIOSv2/src/mainboard/igel/igel-316/sdram_timing.h
> > > > ===================================================================
> > > > --- /dev/null
> > > > +++ LinuxBIOSv2/src/mainboard/igel/igel-316/sdram_timing.h
> > >
> > > Same here. Is it mainboard-specific? Otherwise merge it into
> > > src/northbridge/amd/gx1/raminit.[ch]? Should it get its own file? If
> > > so, why?
> >
> > Some parts are mainboard specific, some are SDRAM specific. Unless we can
> > read back the SPD EEPROM, we must manually add the SDRAM data.
>
> Yes, reading the SPD values is definately the correct thing to do. We
> should try to make that work...

Yes.

> > > I'll try to dump the SPD information on my Winnet3 and report the
> > > results...
> >
> > But it would be valid only for exact one SDRAM type! Not for all the
> > others.
>
> Ah yes, sure, the SDRAM info is specific. I meant that I'll check
> whether reading SPD values works at all on my board.

I think no one of this manufacturer has made his own development.
They all redo National's reference schematic in various ways to ensure
the standard BIOS will work (this is one advantage of closed source:
You must be hardware compatible in any way to ensure it works...).
Does someone has this reference schematic? This would help to improve
our development.

> > > Are you sure? Mine has a BIOS chip and a DoC. While the BIOS usually
> > > boots a kernel from the DoC, if you attach an IDE disk (with external
> > > power, as the thin client doesn't provide it), it will boot a Linux
> > > from the disk just fine.
> >
> > Yes I'm sure. At system start I only see "booting...". No way found to
> > stop it.
>
> On my system there's no need to enter the BIOS. Just attach an IDE disk
> (and power for it), and the BIOS will automatically boot from that
> (instead of the DoC).
>
> FWIW, I can enter the original BIOS by pressing ESC while the IGEL logo
> is displayed on the screen.

No way here. :-(

Juergen




More information about the coreboot mailing list