[LinuxBIOS] How to reset Geode GX1/CS5530 board

joep at frog.nl joep at frog.nl
Wed Dec 7 23:11:25 CET 2005


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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Config.lb
Type: application/octet-stream
Size: 4578 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20051207/24e89fc0/attachment.obj>


More information about the coreboot mailing list