[LinuxBIOS] r394 - in LinuxBIOSv3: mainboard mainboard/adl/msm800sev mainboard/amd/norwich mainboard/artecgroup mainboard/artecgroup/dbe61 mainboard/emulation/qemu-x86 util/dtc

Uwe Hermann uwe at hermann-uwe.de
Thu Jun 28 23:32:17 CEST 2007


On Thu, Jun 28, 2007 at 06:21:38PM +0200, svn at openbios.org wrote:
>       mainboard-vendor = "AMD";
>       mainboard-part-number = "Norwich";

Wouldn't

        mainboard-name = "Norwich";

make more sense? It's not really a part number, it's a name.


>  }
> 
>  statictree.h will have:
>  extern const char *mainboard_vendor, *mainboard_part_number;
> 
>  and statictree.c will have:
>  const char *mainboard_vendor = "AMD";
>  const char *mainboard_part_number = "Norwich";
> 
>  It is an error to NOT have the vendor and part number in the top
>  level dts.

Great! Needs to be documentated somewhere, though.


> Modified: LinuxBIOSv3/mainboard/Kconfig
> ===================================================================
> --- LinuxBIOSv3/mainboard/Kconfig	2007-06-28 15:19:30 UTC (rev 393)
> +++ LinuxBIOSv3/mainboard/Kconfig	2007-06-28 16:21:38 UTC (rev 394)
> @@ -38,6 +38,12 @@
>  	  Select this option for various systems from 
>  	  Advanced Micro Devices, Inc
>  
> +config VENDOR_ARTECGROUP
> +	bool "Artec Group"
> +	help
> +	  Select this option for various systems from 
> +	  the Artec Group

Cosmetic:
Should end with a full stop, as every other sentence, and please write
it into one line (it won't exceed 79 characters, I think).

 
> +choice
> +	prompt "Mainboard model"
> +	depends on VENDOR_ARTECGROUP
> +
> +config BOARD_ARTECGROUP_DBE61
> +	bool "dbe61"

Should be "DBE61" as it's the user-visible name in menuconfig.


> +config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
> +	hex
> +	default 0x1022
> +	depends BOARD_ARTECGROUP_DBE61
> +	help
> +	  Mainboard specific PCI subsystem vendor ID.
> +
> +config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
> +	hex
> +	default 0x2323
> +	depends BOARD_ARTECGROUP_DBE61
> +	help
> +	  Mainboard specific PCI subsystem device ID.

Are the subsystem IDs correct for this board or copy+pasted?


> +$(obj)/linuxbios.vpd:
> +	$(Q)printf "  BUILD   DUMMY VPD\n"
> +	$(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT)
> +

Mainboard-specific? If not it should be in some common Makefile, not in
every single mainboard Makefile.


> Added: LinuxBIOSv3/mainboard/artecgroup/dbe61/cmos.layout
> ===================================================================
> --- LinuxBIOSv3/mainboard/artecgroup/dbe61/cmos.layout	                        (rev 0)
> +++ LinuxBIOSv3/mainboard/artecgroup/dbe61/cmos.layout	2007-06-28 16:21:38 UTC (rev 394)

Missing license header.


> +	msr.lo = 
> +			(6<<28) |		// cas_lat
> +			(10<<24)|		// ref2act
> +			(7<<20)|		// act2pre
> +			(3<<16)|		// pre2act
> +			(3<<12)|		// act2cmd
> +			(2<<8)|			// act2act
> +			(2<<6)|			// dplwr
> +			(2<<4)|			// dplrd
> +			(3);			// dal

Maybe make the hardcoded values defines which have the name of the
comments to the right?


> Added: LinuxBIOSv3/mainboard/artecgroup/dbe61/irq_tables.c
> ===================================================================
> --- LinuxBIOSv3/mainboard/artecgroup/dbe61/irq_tables.c	                        (rev 0)
> +++ LinuxBIOSv3/mainboard/artecgroup/dbe61/irq_tables.c	2007-06-28 16:21:38 UTC (rev 394)

Missing license header.


> @@ -0,0 +1,60 @@
> +/* This file was generated by getpir.c, do not modify! 
> +   (but if you do, please run checkpir on it to verify)
> + * Contains the IRQ Routing Table dumped directly from your memory, which BIOS sets up
> + *
> + * Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM
> +*/

Can we drop this? A link to the documentation should be in the wiki, not
every single file. As far as I understand the getpir output is not
reliable anyway, so we should drop the above note (also from getpir output).


> +
> +#include <arch/pirq_routing.h>
> +
> +#define ID_SLOT_PCI_NET		1			// ThinCan ethernet
> +#define ID_SLOT_PCI_RSVD1	2           // reserved entry 1
> +#define ID_SLOT_PCI_RSVD3	3           // reserved entry 2
> +#define ID_SLOT_PCI_RSVD2	4			// reserved entry 3
> +#define ID_EMBED_PCI		0xff		// onboard PCI device
> +
> +// CS5535 PCI INT[A-D] Interrupt Routing lines.
> +#define NO_CONNECT			0			// not used
> +#define CS_PCI_INTA			1			// PCI INTA
> +#define CS_PCI_INTB			2			// PCI INTB
> +#define CS_PCI_INTC			3			// PCI INTC
> +#define CS_PCI_INTD			4			// PCI INTD
> +
> +// IRQ bitmap reference line	FEDCBA9876543210
> +//								0000110000100000b
> +#define PCI_IRQ					0xc20	// PCI allowed IRQs here
> +
> +const struct irq_routing_table intel_irq_routing_table = 
> +{
> +	PIRQ_SIGNATURE,  /* u32 signature */
> +	PIRQ_VERSION,    /* u16 version   */
> +	32+16*6,		/* there can be total 2 devices on the bus */
              ^                                       ^
   One of them is wrong (2 or 6)


> +	/* special for the root. Emit the names for the mainboard vendor and part # */
> +	for_each_property(bi->dt, prop) {
> +		if (streq(prop->name, "mainboard-vendor")){
> +			found_mainboard_vendor = 1;
> +			fprintf(f, "const char *mainboard_vendor = \"%s\";\n", prop->val.val);
> +		}
> +		if (streq(prop->name, "mainboard-part-number")){
> +			found_mainboard_partnumber = 1;
> +			fprintf(f, "const char *mainboard_part_number = \"%s\";\n", prop->val.val);
> +		}
> +	}
> +
> +	if (! 	found_mainboard_vendor){
             ^^^
       Drop the spaces.


> +		die("There is no mainboard-vendor property in the root. Please add one."
> +			"(and make sure there is a mainboard-part-number property too");
> +	}
> +
> +	if (! 	found_mainboard_partnumber){

             Ditto


> +		die("There is no mainboard-part-number property in the root. "
> +			"Please add one."
> +			"(and make sure there is a mainboard-vendor property too");
> +	}
> +
> +
>  	/* emit the code, if any */
>  	if (code)
>  		fprintf(f, "%s\n", code);
> @@ -1323,6 +1350,7 @@
>  	fix_next(bi->dt);
>  	/* emit any includes that we need  -- TODO: ONLY ONCE PER TYPE*/
>  	fprintf(f, "#include <device/device.h>\n#include <device/pci.h>\n");
> +	fprintf(f, "extern const char *mainboard_vendor, *mainboard_part_number;\n");
>  	flatten_tree_emit_includes(bi->dt, &linuxbios_emitter, f, &strbuf, vi);
>  
>  	flatten_tree_emit_structdecls(bi->dt, &linuxbios_emitter, f, &strbuf, vi);


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20070628/e083d955/attachment.sig>


More information about the coreboot mailing list