Hi Uwe,
On Saturday 12 May 2007 13:34, Uwe Hermann wrote:
On Wed, May 09, 2007 at 08:39:26PM +0200, Juergen Beisert wrote:
On Wednesday 09 May 2007 01:54, Uwe Hermann wrote:
Here's a first patch for the IGEL Winnet III thin client. It allows me to boot a Linux kernel half-way to the login prompt; at some point it hangs, though, so more work is needed.
Did you check the SDRAM timing? In my IGEL 316 terminals (also Geode GX1) this it the most fragile part.
This is a 233 MHz Geode GX1 based thin client with Ethernet, USB, VGA, a Disk-on-Chip, socketed DIP BIOS chip, a laptop-size RAM slot, a normal-size (PC) RAM slot (don't remember the correct name right now), and IDE connector, keyboard, mouse, sound, 2x serial port, parallel port, 1x ISA slot, 1x PCI slot. Fanless, extremely silent.
Maybe it can help me with my terminals. Could you please apply the attached patch series to a 2.6.21 kernel, build it with the attached kernel config and run it on your new shiny terminal? And later send me the kernel startup messages?
The bootlog is attached, gathered on LinuxBIOS (current ASI MB-5BLMP code) + Linux 2.6.21.1 + your patches + your config file.
I removed the NFS boot and enabled IDE support in the kernel (.config attached) as I have my test system on an IDE disk.
Here are some comments about the log:
Working around Cyrix MediaGX virtual DMA bugs.
We should remove this. Without SMM it is useless.
Enable Memory-Write-back mode on Cyrix/NSC processor. Enable Memory access reorder on Cyrix/NSC processor. Enable Incrementor on Cyrix/NSC processor.
We should find a way to setup the "Incrementor" in a correct way, as it needs a setting of 10b for 233...266MHz CPUs and 11b for 300...330MHz CPUs. My patch forces it to 11b because I'm running 300MHz machines only.
The following is the output of my memory driver:
Geode GX1: Internal IOBASE at 0x40000000
ok.
Geode GX1: SMM is disabled
Sure! ;-)
Geode GX1: Suspend on HLT feature enabled
BTW: This makes the TSC on this CPU useless! Use "clocksource=pit" as a kernel command line.
Geode GX1: Write through between 640kiB/1MiB is enabled
Did you connect some devices in this area? If not you could use it as additional RAM.
Geode GX1: Reordering between 0x00000000/0x3fffffff is disabled Geode GX1: Reordering between 0x40000000/0x7fffffff is disabled Geode GX1: Reordering between 0x80000000/0xbfffffff is enabled Geode GX1: Reordering between 0xc0000000/0xffffffff is enabled
Ups, the is an error in my patch. It should be the other way round.
Geode GX1: FPU fast mode enabled Geode GX1: DTE cache enabled Geode GX1: Memory Read Bypass enabled
Ok.
Geode GX1: IO Recovery Time is 6 clocks
Can anyone interpret this value? Does it mean "Recovery on PCI bus" side? The GX1 processor only has a PCI bus, nothing else.
Geode GX1: MMX instructions are enabled Geode GX1 Chipset Support (c) Juergen Beisert 2007 juergen@kreuzholzen.de Geode GX1: Forcing round robin policy due to active video
Tweak of my driver. When running higher video resolutions, the CPU should not have the highest priortiy on the memory bus.
Geode GX1: 0x13101530, 0x92162008, 0x00000018, 0x3A733225 Geode GX1: Memory base clock is one fourth the CPU clock
You are running a 233MHz CPU. Your memory will run at 58.25 MHz. Veeeery slow!
Geode GX1: Memory refresh rate is 2048 cpu clocks
Most memories need a refresh every 15us. This setting will refresh every ~9us.
[...] Geode GX1: CAS latency: 3 clocks Geode GX1: RFSH to RFSH/ACT Period: 11 clocks Geode GX1: ACT to PRE Period: 8 clocks Geode GX1: PRE to ACT Period: 3 clocks Geode GX1: ACT to Read/Write Delay: 3 clocks Geode GX1: ACT(0) to ACT(1) Period: 2 clocks Geode GX1: Data-in to PRE Period: 2 clocks
Ok, this is the slowest possible memory timing...
Geode GX1: XBUS round robin: active Geode GX1: Scratch Pad Ram and Video Instructions disabled
Ok.
[...] Geode GX1 Framebuffer 0000:00:12.4: Mode 640x400@16 possible Geode GX1 Framebuffer 0000:00:12.4: Mode 640x480@16 possible Geode GX1 Framebuffer 0000:00:12.4: Mode 800x600@16 possible [...] Geode GX1 Framebuffer 0000:00:12.4: X or Y resolution to big (1366, 768) Geode GX1 Framebuffer 0000:00:12.4: Mode 640x400@16 possible
Try to run it with this kernel command line: video=gx1fb:monitor:640x480@60,crt:1 (or anything other monitor resolution you like)
BTW: Did you get any monitor output?
8139too Fast Ethernet driver 0.9.28 PCI: Assigned IRQ 9 for device 0000:00:0f.0 eth0: RealTek RTL8139 at 0xca810000, 00:e0:c5:c9:07:7b, IRQ 9
Does your interrupt routing work?
You wrote:
The machine seems to hang after/while IDE init, but that was happening before, too... I assume the LinuxBIOS code still needs some fixing.
Hmmm:
EXT3-fs: INFO: recovery required on readonly filesystem. EXT3-fs: write access will be enabled during recovery. kjournald starting. Commit interval 5 seconds EXT3-fs: recovery complete. EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 136k freed EXT3 FS on hda1, internal journal
But it seems to work???
Juergen