[coreboot] patch: make node id/core id available on all arch; really implement stop_ap
Peter Stuge
peter at stuge.se
Sat Sep 20 02:11:37 CEST 2008
ron minnich wrote:
> support for node id and core id. We've been faking this for two
> years now.
Good improvement.
> +++ mainboard/amd/serengeti/Makefile (working copy)
> @@ -27,6 +27,8 @@
> $(src)/southbridge/amd/amd8111/stage1_smbus.c \
> $(src)/southbridge/amd/amd8111/stage1_ctrl.c \
> $(src)/southbridge/amd/amd8111/stage1_enable_rom.c \
> + $(src)/arch/x86/amd/model_fxx/dualcore_id.c \
> + $(src)/arch/x86/amd/model_fxx/stage1.c \
> $(src)/northbridge/amd/k8/coherent_ht.c \
> $(src)/northbridge/amd/k8/libstage1.c \
>
> @@ -38,10 +40,9 @@
> $(src)/arch/x86/pci_ops_conf1.c \
> $(src)/arch/x86/stage1_mtrr.c \
> $(src)/southbridge/amd/amd8111/stage1_smbus.c \
> - $(src)/arch/x86/amd/model_fxx/init_cpus.c \
> $(src)/arch/x86/amd/model_fxx/dualcore.c \
> - $(src)/arch/x86/amd/model_fxx/dualcore_id.c \
> $(src)/arch/x86/amd/model_fxx/fidvid.c \
> + $(src)/arch/x86/amd/model_fxx/init_cpus.c \
> $(src)/lib/clog2.c
Hm, is the order important?
> /**
> + * Return core id/node id info. Always 0.
> + */
> +struct node_core_id get_node_core_id(void)
> +{
> + struct node_core_id id;
> + id.nodeid = 0;
> + id.coreid = 0;
> +}
Except there is no return. :)
> + me = get_node_core_id();
> + /* before we do anything, we want to stop if we dont run
> + * on the bootstrap processor.
> + * stop_ap is responsible for NOT stopping the BSP
> + */
>
> + stop_ap();
> +
stop_ap() and comment could go before get_node_core_id().
> /* Initialize global variables before we can think of using them.
> * NEVER run this on an AP!
> */
> - global_vars_init(&globvars);
> - globvars.init_detected = init_detected;
> + if (me.nodeid == 0) {
> + global_vars_init(&globvars);
> + globvars.init_detected = init_detected;
> + }
And in any case this check shouldn't be needed - then stop_ap() will
have failed and if that can happen it should be handled by stop_ap().
//Peter
More information about the coreboot
mailing list