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@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@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@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@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@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@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