[coreboot] progress on lx

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat Jan 19 01:27:25 CET 2008


[Sorry for the almost-fullquote.]

On 18.01.2008 19:24, ron minnich wrote:
> With the as-yet uncommitted patch I just posted, we're getting much
> better results. My comments in [[[]]]
>
> LinuxBIOS-3.0.0 Fri Jan 18 08:34:27 PST 2008 starting...
> Choosing fallback boot.
> LAR: Attempting to open 'fallback/initram/segment0'.
> LAR: Start 0xfff80000 len 0x80000
> LAR: seen member normal/payload/segment0
> LAR: seen member normal/payload/segment1
> LAR: seen member normal/option_table
> LAR: seen member normal/stage2/segment0
> LAR: seen member normal/stage2/segment1
> LAR: seen member normal/initram/segment0
> LAR: seen member bootblock
> LAR: File not found!
> LAR: Run file fallback/initram/segment0 failed: No such file.
> Fallback failed. Try normal boot
> LAR: Attempting to open 'normal/initram/segment0'.
> LAR: Start 0xfff80000 len 0x80000
> LAR: seen member normal/payload/segment0
> LAR: seen member normal/payload/segment1
> LAR: seen member normal/option_table
> LAR: seen member normal/stage2/segment0
> LAR: seen member normal/stage2/segment1
> LAR: seen member normal/initram/segment0
> LAR: CHECK normal/initram/segment0 @ 0xfff9ae20
> start 0xfff9ae70 len 5400 reallen 5400 compression 0 entry 0x00000f0b
> loadaddress 0x00000000
> Entry point is 0xfff9bd7b
> Hi there from stage1
> done preinit
> done gpio init
> pll_reset: read msr 0x4c000014
> _MSR GLCP_SYS_RSTPLL (4c000014) value is: 0000059c:0000182e
> Configuring PLL
> Resetting the processor after PLL configuration for the changes to take effect
>
>
> [[[Note the new message ... So we're through pll reset as before. ]]]
>   

Yes. And the message makes it clear why we reset the processor.

> LinuxBIOS-3.0.0 Fri Jan 18 08:34:27 PST 2008 starting...
> Choosing fallback boot.
> LAR: Attempting to open 'fallback/initram/segment0'.
> LAR: Start 0xfff80000 len 0x80000
> LAR: seen member normal/payload/segment0
> LAR: seen member normal/payload/segment1
> LAR: seen member normal/option_table
> LAR: seen member normal/stage2/segment0
> LAR: seen member normal/stage2/segment1
> LAR: seen member normal/initram/segment0
> LAR: seen member bootblock
> LAR: File not found!
> LAR: Run file fallback/initram/segment0 failed: No such file.
> Fallback failed. Try normal boot
> LAR: Attempting to open 'normal/initram/segment0'.
> LAR: Start 0xfff80000 len 0x80000
> LAR: seen member normal/payload/segment0
> LAR: seen member normal/payload/segment1
> LAR: seen member normal/option_table
> LAR: seen member normal/stage2/segment0
> LAR: seen member normal/stage2/segment1
> LAR: seen member normal/initram/segment0
> LAR: CHECK normal/initram/segment0 @ 0xfff9ae20
> start 0xfff9ae70 len 5400 reallen 5400 compression 0 entry 0x00000f0b
> loadaddress 0x00000000
> Entry point is 0xfff9bd7b
> Hi there from stage1
> done preinit
> done gpio init
> pll_reset: read msr 0x4c000014
> _MSR GLCP_SYS_RSTPLL (4c000014) value is: 0000059c:07de002e
> Done pll_reset
> done pll reset
> [[[I'm skipping the DRAM spew .. nothing new]]]
> [[I'm skipping the LAR walk to stage 2..]]]
> dev_id_string: Unknown device ID type: 0
> find_constructor: find Unknown
> [[[ Wha'ts this mean? It means the id is not set in the dts. This will
> be fixed over time ]]]
> [[[ But it does not always matter. In the dev_init, I should skip
> devices of type Unkown anyway.]]]
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: cons 0x0000a414, cons id APIC_CLUSTER: 1022:2080
> find_constructor: cons 0x0000a428, cons id PCI: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a740
> find_constructor: cons 0x0000a740, cons id PCI: 1022:2090
> dev_id_string: Unknown device ID type: 0
> find_constructor: find Unknown
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: cons 0x0000a414, cons id APIC_CLUSTER: 1022:2080
> find_constructor: cons 0x0000a428, cons id PCI: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a740
> find_constructor: cons 0x0000a740, cons id PCI: 1022:2090
> dev_id_string: Unknown device ID type: 0
> find_constructor: find Unknown
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: cons 0x0000a414, cons id APIC_CLUSTER: 1022:2080
> find_constructor: cons 0x0000a428, cons id PCI: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a740
> find_constructor: cons 0x0000a740, cons id PCI: 1022:2090
> dev_id_string: Unknown device ID type: 0
> find_constructor: find Unknown
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: cons 0x0000a414, cons id APIC_CLUSTER: 1022:2080
> find_constructor: cons 0x0000a428, cons id PCI: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a740
> find_constructor: cons 0x0000a740, cons id PCI: 1022:2090
> dev_id_string: Unknown device ID type: 0
> find_constructor: find Unknown
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: cons 0x0000a414, cons id APIC_CLUSTER: 1022:2080
> find_constructor: cons 0x0000a428, cons id PCI: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a740
> find_constructor: cons 0x0000a740, cons id PCI: 1022:2090
> find_constructor: find PCI_DOMAIN: 1022:2080
> find_constructor: check all_constructors[i] 0x0000a400
> find_constructor: cons 0x0000a400, cons id PCI_DOMAIN: 1022:2080
> find_constructor: match
>
>
> [[[OK, that was the dev_init code. The key thing here is the 'match'
> -- we found the constructor for the
> north bridge and have set the ops for it. As we add pciid properties
> to the various dts'es, there will be more
> matches. ]]]
>
> Phase 1: Very early setup...
> Phase 1: done
>
> [[[ here comes the good news ...]]]
>
> Show all devs...
> root(Root Device): enabled 1 have_resources 0 initialized 0
> cpus: Unknown device path type: 0
> cpus(): enabled 1 have_resources 0 initialized 0
> device0_0(PCI: 00:01.0): enabled 1 have_resources 0 initialized 0
> southbridge(PCI: 00:0f.1): enabled 1 have_resources 0 initialized 0
> superio: Unknown device path type: 0
> superio(): enabled 0 have_resources 0 initialized 0
> domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 0 initialized 0
> Phase 2: Early setup...
> dev_phase2: dev root: dev_phase2: ops 0x00007e20
> ops->phase2_setup_scan_bus 0x00000000
>
> dev_phase2: dev cpus: dev_phase2: ops 0x00000000
> ops->phase2_setup_scan_bus 0x0000780b
>
> dev_phase2: dev device0_0: dev_phase2: ops 0x00000000
> ops->phase2_setup_scan_bus 0x0000780b
>
> dev_phase2: dev southbridge: dev_phase2: ops 0x00000000
> ops->phase2_setup_scan_bus 0x0000780b
>
> dev_phase2: dev superio: dev_phase2: ops 0x00000000
> ops->phase2_setup_scan_bus 0x0000780b
>
> dev_phase2: dev domain0: dev_phase2: ops 0x0000a460
> ops->phase2_setup_scan_bus 0x00005b5a
> Calling phase2 phase2_setup_scan_bus...>> Entering northbridge.c:
> geodelx_pci_domain_phase2
> Enter northbridge_init_early
> writeglmsr: MSR 0x10000020, val 0x20000000:0x000fff80
> writeglmsr: MSR 0x10000021, val 0x20000000:0x080fffe0
> sizeram: _MSR MC_CF07_DATA: 10076013:00061a40
> sizeram: sizem 0x100MB
> sysmem_init: enable for 256MBytes
> Usable RAM: 268304383 bytes
> sysmem_init: MSR 0x10000028, val 0x2000000f:0xfdf00100
> sizeram: _MSR MC_CF07_DATA: 10076013:00061a40
> sizeram: sizem 0x100MB
> SMMGL0Init: 268304384 bytes
> SMMGL0Init: offset is 0x80400000
> SMMGL0Init: MSR 0x10000026, val 0x28fbe080:0x400fffe0
> writeglmsr: MSR 0x10000080, val 0x00000000:0x00000003
> writeglmsr: MSR 0x40000020, val 0x20000000:0x000fff80
> writeglmsr: MSR 0x40000021, val 0x20000000:0x080fffe0
> sizeram: _MSR MC_CF07_DATA: 10076013:00061a40
> sizeram: sizem 0x100MB
> sysmem_init: enable for 256MBytes
> Usable RAM: 268304383 bytes
> sysmem_init: MSR 0x4000002a, val 0x2000000f:0xfdf00100
> SMMGL1Init:
> SMMGL1Init: MSR 0x40000023, val 0x20000080:0x400fffe0
> writeglmsr: MSR 0x40000080, val 0x00000000:0x00000001
> writeglmsr: MSR 0x400000e3, val 0x60000000:0x033000f0
> CPU_RCONF_DEFAULT (1808): 0x25FFFC02:0x10FFDF00
> CPU_RCONF_BYPASS (180A): 0x00000000 : 0x00000000
> L2 cache enabled
> GLPCI R1: system msr.lo 0x00100130 msr.hi 0x0ffdf000
> GLPCI R2: system msr.lo 0x80400120 msr.hi 0x8041f000
> Exit northbridge_init_early
>
> [[[ WOO HOO! north bridge setup and memory setup for 256M!]]]
>   

Great! Any patch combination that achieves this has my

Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Please go ahead and check in.

> [[[ here comes the bad news ]]]
> chipsetinit: Could not find the south bridge!
> [[[ damn!]]]
>   

Is this same situation as before or is it worse? If it is worse, please
try to fix before you commit.
Could it be that we try to find the south bridge by PCI ID and the VSA
is needed for that?

> Before VSA:
> After VSA:
> Finding PCI configuration type.
> PCI: Sanity check failed
> pci_check_direct failed
>
> [[[ So, Marc, now what :-) ]]]
>   

Regards,
Carl-Daniel




More information about the coreboot mailing list