[coreboot] next set of patches: modify the dtc and device code to support IDs

Peter Stuge peter at stuge.se
Fri Jan 18 00:35:46 CET 2008


On Thu, Jan 17, 2008 at 12:55:22PM -0800, ron minnich wrote:
> +#define TYPENAME(a,b,c,d) ((a<<24)|(b<<16)|(c<<8)|(d))

Does each parameter need () in the macro definition here? And maybe
mask away overflowing bits?

#define TYPENAME(a,b,c,d) ((((a)&0xff)<<24)|(((b)&0xff)<<16)|(((c)&0xff)<<8)|((d)&0xff))

?


> +	DEVICE_ID_ROOT	= TYPENAME('R','O','O','T'),
> +	DEVICE_ID_PCI	= TYPENAME(' ','P','C','I'),
> +	DEVICE_ID_PNP	= TYPENAME(' ','P','N','P'),
> +	DEVICE_ID_I2C	= TYPENAME(' ','I','2','C'),
> +	DEVICE_ID_APIC	= TYPENAME('A','P','I','C'),
> +	DEVICE_ID_PCI_DOMAIN = TYPENAME('P','C','I','D'),
> +	DEVICE_ID_APIC_CLUSTER = TYPENAME('A','P','C','C'),
> +	DEVICE_ID_CPU = TYPENAME(' ','C','P','U'),
> +	DEVICE_ID_CPU_BUS =  TYPENAME(' ','B','U','S'),

Dunno..


> +{
> +        constructor = "geodelx_north_constructors";
> +	domainid = "PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_LXBRIDGE";
> +};

Different whitespace?


> + /* note the flaw here: we're just taking the %s as an initialization string. 
> +  * Someone who is good at yacc might be able to put this stuff into the dts language. 
> +  * this streq stuff is a bit of a hack 
> +  */
>  if (streq(prop->name, "pcidomain")){
>    fprintf(f, "\t.path = {.type=DEVICE_PATH_PCI_DOMAIN,.u={.pci_domain={ .domain = %s }}},\n", 
>      prop->val.val);

uhm, what? Can you explain this a little further?


I like the general idea, but no ack just yet.


//Peter




More information about the coreboot mailing list