XO PRS 2006

From OLPC
Revision as of 17:44, 3 October 2006 by JordanCrouse (talk | contribs) (Add some more register comments)
Jump to: navigation, search

This is my investigation into the PRS run that Mitch Bradley conducted. Where applicable, I am including comments from Tom Sylla (http://dev.laptop.org/attachment/ticket/109/prscheck.txt) If you wish to comment, make sure you append four tildes ~~~~ to sign it.

GX Graphics PCI Header Register

PCI Cache Line Size (R/W)

Expected 8 Got 0

IGNORE. The VSA should fill these out so that the headers are spec compliant. Its unlikely that any of the drivers use these fields, so its probably OK to ignore these.

GX CPU Core MSRs

Data Memory Configuration (MSR 0x1800)

Expected 200000000002 Got 200000000022

FIX PRS. This is correct. It makes an INVD command work exactly like WBINVD. Interestingly enough, Tom's PRS check was different (it expected 200000000022), so that should be looked into.

Default RCONF (MSR 0x1808)

Expected 25fff00210730000 Got 25fff0021077e000

FIX CODE. From Tom: This one doesn't matter too much at runtime (after BIOS boot) It may as well match our PRS, since that is how we run all the time. The flashrom utility that is used to flash will have to turn off write protect as necessary. There is an interesting tangent though, what settings is LinuxBIOS using when booting? It could be something faster than uncacheable. Even more tangential, is their memcpy for shadowing the fastest it can be on our hardware?

RCONF Bypass (MSR 0x180A)

Expected 11 Got 0

FIX PRS. This is correct. From Tom: LinuxBIOS is right here. It is wrong in the olpc.prs. The LinuxBIOS value matches both the sparrow and norwich PRSes. '0' is the highest performance setting.

C0000-DFFFF RCONF

Expected 2121212121210101 Got 212121212121212

POSSIBLE CODE FIX. From Tom: this one would take some looking into. these regions are usually set CD, WS because they are where PCI ROMs are usually located. Since the OLPC will have no PCI ROMs at these locations, These could be made cacheable, and added back to the memory map that linux uses.
I'm not sure if we can even use this space in kernel land. - JordanCrouse (Talk to me!) 13:59, 3 October 2006 (EDT)

E0000 - FFFFF RCONF

Expected 101010101010101 Got 2121212121212121

POSSIBLE CODE FIX. Same as above.
I'm not sure we can use this space even if the kernel gets it back - JordanCrouse (Talk to me!) 13:59, 3 October 2006 (EDT)

Region Configuration SMM

Expected 4043f00040400104 Got 4041f00040400104

FIX PRS. I think this is fine - this just indicates that our SMM area is smaller then it normally is with the full VSA.

GX GeodeLink Memory Controller MSRs

Refresh and SDRAM program (0x20000018)

Expected 1007401200002000 Got 1007401200002400

VERIFY & FIX PRS. This needs to be verified correct for the hardware, and the PRS updated for the right value.

GX Display Filter (DF) MSRs

GLD Master Configuration (MSR 0xc0002001)

Expected 40f00 Got 40f80

FIX PRS. This value is correct for a TFT attached board.

CS5536 MFGPT

MFGPT 3 Setup

Expected 10da Got 30da

INVESTIGATE. Bit 13 indicates that the Comparator 1 output status is high. The clock isn't being actively used, so this is harmless in and of itself, but we need to investigate why VSA is setting up this clock.

(Note - same goes for MFGPT 4 and MFGPT 5 setup).

MFGPT 5 CMP1

Expected 1b83 Got ffff

FIX PRS. The clock isn't being actively used, so the comparator value is harmless.

CS5536 SMB IO

SMBCTL2

Expected ff Got 41

FIX LB. SMBCTL[7:1] sets up the lower 7 bits of the SMB_CLOCK frequency. The kernel writes a 71 - Not sure where they got 41 from, but 71 has been verified to be a good value. Use that.

CS5536 EHC Native

USB_HCCPARAMS

Expected 5012 Got 12

FIX PRS. The 50 is used to point to an "extended capabilities" region in the config space.. Right now, that is only used to hand over control from the BIOS to the kernel. This isn't

a problem for us, and we have no reason even to wander down this code in the first place, so keep the offset at 0, and fix the PRS.

IPGREG04

Expected 2 Got 0

FIX PRS. Undocumented bits - 0 is correct for OLPC. Update the PRS.