[coreboot] some more i945 patches

Peter Stuge peter at stuge.se
Tue Jul 21 20:11:05 CEST 2009


Stefan Reinauer wrote:
> See patches

All are:

Acked-by: Peter Stuge <peter at stuge.se>


> +++ src/pc80/i8259.c	(working copy)
..
> +void i8259_configure_irq_trigger(int int_num, int is_level_triggered)
..
> +	/* Write new values */
> +	printk_spew("%s: try to set interrupts 0x%x\n", __func__, int_bits);
> +	outb((u8)(int_bits & 0xff), ELCR1);
> +	outb((u8)(int_bits >> 8), ELCR2);
> +
> +#ifdef PARANOID_IRQ_TRIGGERS
> +	/* Try reading back the new values. This seems like an error but is not ... */
> +	if (inb(ELCR1) != (int_bits & 0xff)) {
> +		printk_err("%s: lower order bits are wrong: want 0x%x, got 0x%x\n",
> +				__func__, (int_bits & 0xff), inb(ELCR1));
> +	}
> +
> +	if (inb(ELCR2) != (int_bits >> 8)) {
> +		printk_err("%s: lower order bits are wrong: want 0x%x, got 0x%x\n",
> +				__func__, (int_bits>>8), inb(ELCR2));
> +	}
> +#endif

Copypaste right? Both of these are not the lower bits.


> +++ src/boot/elfboot.c	(working copy)
..
> - * - After loading an ELF image copy coreboot to the upper half of the
> + * - After loading an ELF image copy coreboot to the top of the
>   *   buffer.

Could fold buffer up onto the previous line.


> - * - After loading an ELF image copy coreboot to the upper half of the
> + * - After loading an ELF image copy coreboot to the top of the
>   *   buffer.

..and again. Is this the same code? Could it be reused?


> +++ src/cpu/x86/lapic/apic_timer.c	(.../trunk/coreboot-v2)	
..
> +/* NOTE: We use the APIC TIMER register is to hold flags for AP init during
> + * pre-memory init (ROMCC). Don't use init_timer() and  udelay is redirected
> + * to udelay_tsc().
> + */

What? "We use the .. is to hold flags for " ? This text is confusing.


> +++ src/arch/i386/boot/acpi.c	(working copy)
..
> +	memcpy(&ssdt->asl_compiler_id, "CORE", 4);
..
> +	memcpy(header->asl_compiler_id, ASLC, 4);

Is this difference on purpose? Is one static and the other not?
Please explain?


> +#define RSDP_NAME	"RSDP"
> +#define RSDT_NAME	"RSDT"
> +#define HPET_NAME	"HPET"
> +#define MADT_NAME	"APIC"
> +#define MCFG_NAME	"MCFG"
> +#define SRAT_NAME	"SRAT"
> +#define SLIT_NAME	"SLIT"
> +#define SSDT_NAME	"SSDT"
> +#define FACS_NAME	"FACS"
> +#define FADT_NAME	"FACP"
> +#define XSDT_NAME	"XSDT"

Does it really make sense to use defines for these names?


> +// Misnomer, the NAME above is the 4 byte signature, this (TABLE) is the
> +// OEM_TABLE_ID.
> +//
> +#define ACPI_TABLE_CREATOR	"COREBOOT"
> +#define RSDT_TABLE	ACPI_TABLE_CREATOR
> +#define HPET_TABLE	ACPI_TABLE_CREATOR
> +#define MCFG_TABLE	ACPI_TABLE_CREATOR
> +#define MADT_TABLE	ACPI_TABLE_CREATOR
> +#define SRAT_TABLE	ACPI_TABLE_CREATOR
> +#define SLIT_TABLE	ACPI_TABLE_CREATOR
> +#define XSDT_TABLE	ACPI_TABLE_CREATOR

Seems even more wrong. Why use these defines?


> +++ src/northbridge/intel/i945/early_init.c	(working copy)
..
> +			reg32 = DMIBAR32(0x224);
> +			reg32 &= ~(7 << 0);
> +			reg32 |= (3 << 0);
> +			DMIBAR32(0x224) = reg32;

How do you feel about making this a single function call?


> -#if SETUP_PCIE_X16_LINK
> +

Is this a part of the Config.lb system? Should it be removed from
there? Why was it there before and removed now? Is x16 never optional
on 945?


> +++ src/northbridge/intel/i945/raminit.c	(working copy)
..
> +#if C2_SELF_REFRESH_DISABLE

Where is this set?


> +	 * However, the Kontron 986LCD-M does not like unused clock
> +	 * signals to be disabled.

(Do you know why? Just curious.)


> +++ src/pc80/keyboard.c	(.../trunk/coreboot-v2)	
> @@ -75,7 +81,11 @@
>  	do {
>  		if (!kbc_input_buffer_empty()) return 0;

No error here?


>  		outb(command, 0x60);
> -		if (!kbc_output_buffer_full()) return 0;
> +		if (!kbc_output_buffer_full()) {
> +			printk_err("Could not send keyboard command %02x\n",
> +					command);
> +			return 0;
> +		}
>  		regval = inb(0x60);
>  		--resend;
>  	} while (regval == 0xFE && resend > 0);


//Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20090721/77e83b3a/attachment.sig>


More information about the coreboot mailing list