Hi Jürgen!
On Fri, May 11, 2007 at 11:11:59PM +0200, Juergen Beisert wrote:
attached the patch to add basic support for the mainboard in a so called IGEL-316 graphical terminal. I'm not sure who the original manufacturer of this mainboard is. It is labeled with "WINNET100 VER: 1.1 (30-3130000-110)"
Great, thanks! Comments below, but please resend with a proper sign-off, otherwise we cannot commit the code: http://linuxbios.org/Development_Guidelines#Sign-off_Procedure
That, and please add the common license header to all source files: http://linuxbios.org/Development_Guidelines#Common_License_Header
(At least the following ones:)
- src/mainboard/igel/igel-316/auto.c - src/mainboard/igel/igel-316/chip.h - targets/igel/igel-316/Config.lb - src/mainboard/igel/igel-316/irq_tables.c - src/mainboard/igel/igel-316/mainboard.c - src/mainboard/igel/igel-316/raminit.h - src/mainboard/igel/igel-316/sdram_timing.h
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?
Index: LinuxBIOSv2/src/mainboard/igel/igel-316/Config.lb
--- /dev/null +chip northbridge/amd/gx1
- device pci_domain 0 on
- device pci 0.0 on end
chip southbridge/amd/cs5530
device pci 12.0 on
chip superio/nsc/pc97317
device pnp 2e.0 on # Keyboard
io 0x60 = 0x60
io 0x62 = 0x64
irq 0x70 = 1
end
device pnp 2e.1 on # Mouse
irq 0x70 = 12
end
device pnp 2e.2 on # RTC
io 0x60 = 0x70
irq 0x70 = 8
end
device pnp 2e.3 off # FDC
end
device pnp 2e.4 on # Parallel Port
io 0x60 = 0x378
irq 0x70 = 7
end
device pnp 2e.5 off # COM2
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 = 0xe800
end
register "com1" = "{115200}"
register "com2" = "{38400}"
end
device pci 12.1 off end # SMI
device pci 12.2 off end # IDE
device pci 12.3 on end # Audio
device pci 12.4 on end # VGA
+# device pci 13.0 on end # USB
end
- end
- end
Is the above correct for the Winnet? What does 'lspnp -v' report when booted from the proprietary BIOS?
Also, can you please send some more system information (lspci -nn, /proc/cpuinfo etc. etc.) so it gets recorded in the list archives for other people who'll search for it later...
A full bootlog (LinuxBIOS + Linux, with maximum verbosity) would be nice, too.
Index: LinuxBIOSv2/src/mainboard/igel/igel-316/cmos.layout
--- /dev/null +++ LinuxBIOSv2/src/mainboard/igel/igel-316/cmos.layout
Is this needed or used at the moment? Otherwise please drop it for now (needs some adaptions in Config.lb otherwise it won't compile any more). We can reintroduce it when it's really needed.
Index: LinuxBIOSv2/targets/igel/igel-316/Config.lb
--- /dev/null +++ LinuxBIOSv2/targets/igel/igel-316/Config.lb
^^^^^^^^
@@ -0,0 +1,22 @@ +# Config file for the IGEL-316 motherboard
+target igel-316
^^^^^^^^
+mainboard igel/igel-316
^^^^^^^^
Shouldn't we use igel_316 instead of igel-316 as directory name? All other mainboards do that AFAICS.
My guess is that this is an ASI/BCom board (but I don't have evidence), so it should go into targets/asi/xxxx, too?
Are there any other names or part numbers on the PCB? Something similar to (MB-)5BL* or so?
Index: LinuxBIOSv2/src/mainboard/igel/igel-316/irq_tables.c
--- /dev/null +++ LinuxBIOSv2/src/mainboard/igel/igel-316/irq_tables.c @@ -0,0 +1,113 @@ +/**
- Documentation at : http://www.microsoft.com/whdc/archive/pciirq.mspx
- **/
+/*
- It was not possible to read back the pirq-Table. In the 0xF segment was
- no string like $PIRQ...
- But the already running 2.4.21 kernel provides eth0 IRQ15 and USB IRQ 11
- The Realtek was device 0.f.0, the usb 0.13.0
- */
+#include <arch/pirq_routing.h>
+/*
- IRQ 5530 USB Network
- controller northbridge device device
00.13.0 00.0f.00
- 11 INTA# INTA# n.c.
- 10 INTB# n.c. n.c.
- 15 INTC# n.c. INTA#
9 INTD# n.c. n.c.
I'm currently trying to figure out the IRQ settings for my Winnet III (ASI MB-5BLMP). Where/how did you gather the information required to write the correct version for this file?
I have the values from lspci and lspnp, so I know which IRQs the original kernel uses, but that's about it. How do I generate an irq_tables.c file out of this?
The getpir utility didn't give any results on my board either, btw...
Index: LinuxBIOSv2/src/mainboard/igel/igel-316/raminit.c
--- /dev/null +++ LinuxBIOSv2/src/mainboard/igel/igel-316/raminit.c
OK, this part should definately be done in the generic RAM init code, not here. Can this easily be merged into the generic GX1 code? I haven't yet looked at that...
Index: LinuxBIOSv2/src/mainboard/igel/igel-316/raminit.h
--- /dev/null +++ LinuxBIOSv2/src/mainboard/igel/igel-316/raminit.h
Is this mainboard-specific or generic for the GX1? Maybe it should go into src/northbridge/amd/gx1/raminit.[ch], too?
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?
+/**
- @brief This defines CPU's core frequency in kHz
The @brief is not needed, we configure Doxygen to always use the first sentence as short description (JavaDoc-like).
+/******************************************************************************
- This is SDRAM specific. Currently I found no way to read the SPD EEPROM
- on the SO-DIMM to autodetect things. I have no clue where the manufacturer
- has connected the required I2C lines for this purpose
- ******************************************************************************/
I'll try to dump the SPD information on my Winnet3 and report the results...
Index: LinuxBIOSv2/documentation/HOWTO/igel-316-howto.txt
--- /dev/null +++ LinuxBIOSv2/documentation/HOWTO/igel-316-howto.txt
Please drop this here, and create a wiki tutorial containing this info (and other instructions how to get LinuxBIOS+Linux running on this thin client).
@@ -0,0 +1,37 @@ +The IGEL-316 is a small and nice terminal based on the old Geode GX1 CPU. It +was shipped with a 16MiB DOC, that contains an older 2.4 Linux kernel and a 3.x +Xfree86 for the graphics. There was no regular BIOS in it to boot other things +than the DOC content.
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.
HTH, Uwe.