I am working to get LinuxBIOS (v2) running on an embedded board with a Geode GX1 CPU and CS5530A companion device. To my joy, the board is already happily booting LinuxBIOS and running the linux kernel: after a little bit of tuning it races from power on to Linux prompt in 3 seconds!! Great job, linuxbios programmers!
I have 2 questions:
1) I would like to be able to do a reboot (reset) and/or poweroff from software. Does anybody know how to get this done for this hardware? I don't know if the reset interface is standard or dependent on specific board design. I tried writing 0x1 to i/o port 0x92 (as suggested in the CS5530A data book), but is does not work.
2) I noticed that in my configuration the cache is not turned on. That made the booting of the kernel very slow. I worked around this by calling "enable_cache" in auto.c, but I guess this is not the right way to do it. I see there is x86_enable_cache in cpu/amd/model_gx1/model_gx1_init.c:model_gx1_init(), but this function is never called.
Here is the boot log from LinuxBIOS: ----- 0.000: 0.011: LinuxBIOS-1.1.8.0Fallback ma dec 5 15:04:24 CET 2005 starting... 0.020: Setting up default parameters for memory 0.236: Sizing memory 0.241: Probing for DIMM0 0.245: Found DIMM0 0.251: Page Size: 00001000 0.256: Component Banks: 4 0.259: Module Banks: 1 0.267: DIMM size: 04000000 0.269: Probing for DIMM1 0.273: MC_BANK_CFG = 00701420 0.577: Copying LinuxBIOS to ram. 0.632: Jumping to LinuxBIOS. 0.641: LinuxBIOS-1.1.8.0Fallback Mon Dec 5 19:41:22 CET 2005 booting... 2.265: clocks_per_usec: 413 2.273: Enumerating buses... 2.274: Finding PCI configuration type. 2.275: PCI: Using configuration type 1 2.280: PCI_DOMAIN: 0000 enabled 2.281: PCI: pci_scan_bus for bus 0 2.288: PCI: 00:00.0 [1078/0001] enabled 2.296: PCI: 00:02.0 [1282/9102] enabled 2.296: PCI: 00:12.0 [1078/0100] enabled 2.297: PCI: 00:12.1 [1078/0101] enabled 2.302: PCI: 00:12.2 [1078/0102] enabled 2.310: PCI: 00:12.3 [1078/0103] enabled 2.311: PCI: 00:12.4 [1078/0104] enabled 2.312: PCI: 00:13.0 [0e11/a0f8] enabled 2.319: PNP: 002e.0 enabled 2.325: PNP: 002e.1 enabled 2.326: PNP: 002e.2 enabled 2.326: PNP: 002e.3 disabled 2.327: PNP: 002e.4 enabled 2.327: PNP: 002e.5 enabled 2.337: PNP: 002e.6 enabled 2.338: PNP: 002e.7 enabled 2.338: PNP: 002e.8 disabled 2.340: PCI: 00:12.1 disabled 2.341: PCI: 00:12.2 enabled 2.367: PCI: 00:12.3 disabled 2.368: PCI: 00:12.4 disabled 2.369: PCI: pci_scan_bus returning with max=00 2.371: done 2.373: Allocating resources... 2.374: Reading resources... 2.378: Done reading resources. 2.379: Setting resources... 2.380: BC_DRAM_TOP = 0x03bfffff 2.386: MC_GBASE_ADD = 0x00000078 2.387: I would set ram size to 60 Mbytes 2.389: PCI: 00:02.0 10 <- [0x0000001000 - 0x00000010ff] io 2.390: PCI: 00:02.0 14 <- [0x00febc2000 - 0x00febc20ff] mem 2.397: PCI: 00:02.0 30 <- [0x00feb80000 - 0x00febbffff] romem 2.400: PCI: 00:12.1 10 <- [0x00febc3000 - 0x00febc30ff] mem 2.408: PCI: 00:12.2 20 <- [0x0000001400 - 0x000000147f] io 2.416: PCI: 00:12.3 10 <- [0x00febc4000 - 0x00febc407f] mem 2.425: PCI: 00:12.4 10 <- [0x00febc0000 - 0x00febc0fff] mem 2.426: PCI: 00:13.0 10 <- [0x00febc1000 - 0x00febc1fff] mem 2.428: Done setting resources. 2.429: Done allocating resources. 2.456: Enabling resourcess... 2.456: PCI: 00:00.0 cmd <- 147 2.457: PCI: 00:02.0 cmd <- 143 2.460: PCI: 00:12.0 cmd <- 14f 2.461: PNP: 002e.4 missing enable_resources 2.462: PCI: 00:12.2 missing enable_resources 2.467: PCI: 00:12.1 cmd <- 142 2.467: PCI: 00:12.2 cmd <- 141 2.468: PCI: 00:12.3 cmd <- 142 2.473: PCI: 00:12.4 cmd <- 142 2.474: PCI: 00:13.0 cmd <- 142 2.474: done. 2.475: Initializing devices... 2.478: Root Device init 2.478: PCI: 00:00.0 init 2.479: northbridge: northbridge_init() 2.480: PCI: 00:12.0 init 2.480: PNP: 002e.0 init 2.488: PNP: 002e.1 init 2.489: PNP: 002e.2 init 2.489: PNP: 002e.5 init 2.489: PNP: 002e.6 init 2.490: PNP: 002e.7 init 2.490: PCI: 00:02.0 init 2.491: PCI: 00:12.1 init 2.498: PCI: 00:12.2 init 2.504: PCI: 00:12.3 init 2.504: PCI: 00:12.4 init 2.510: PCI: 00:13.0 init 2.511: Devices initialized 2.512: Copying IRQ routing tables to 0xf0000...done. 2.513: Verifing copy of IRQ routing tables at 0xf0000...failed 2.514: Moving GDT to 0x500...ok 2.527: Wrote linuxbios table at: 00000530 - 000006bc checksum 91c5 2.527: 2.528: Welcome to elfboot, the open sourced starter. .... -----
I attached the Config.lb that I created for this board.It was adapted from the eaglelion/5bcm.
Regards,
Joep