[coreboot] [PATCH] MCP55 azalia driver

Peter Stuge peter at stuge.se
Tue Jun 1 08:02:00 CEST 2010


Nice! But..

Stefan Reinauer wrote:
> +++ src/devices/oprom/x86.c	(working copy)
> @@ -45,6 +45,43 @@
>  void (*realmode_interrupt)(u32 intno, u32 eax, u32 ebx, u32 ecx, u32 edx, 
>  		u32 esi, u32 edi) __attribute__((regparm(0))) = (void *)&__realmode_interrupt;
>  
> +#define DEBUG_REALMODE
> +#ifdef DEBUG_REALMODE
> +static void
> +dump(u8 * addr, u32 len)

Oops..


..but more importantly:

> +++ src/southbridge/nvidia/mcp55/Makefile.inc	(working copy)
> @@ -1,5 +1,5 @@
>  driver-y += mcp55.o
> -driver-y += mcp55_aza.o
> +driver-y += mcp55_azalia.o

This is so that the driver is built for all boards which

select SOUTHBRIDGE_NVIDIA_MCP55

in their Kconfig.


> +++ src/mainboard/supermicro/h8dmr/mainboard.c	(working copy)
> @@ -3,11 +3,11 @@
>   *
>   * Copyright (C) 2007 AMD
>   * Written by Yinghai Lu <yinghailu at amd.com> for AMD.
> + * Copyright (C) 2010 coresystems GmbH
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> + * the Free Software Foundation; version 2 of the License.
>   *
>   * This program is distributed in the hope that it will be useful,
>   * but WITHOUT ANY WARRANTY; without even the implied warranty of
> @@ -24,8 +24,21 @@
>  #include <device/pci.h>
>  #include <device/pci_ids.h>
>  #include <device/pci_ops.h>
> +#include "hda_verb.h"
>  #include "chip.h"
>  
> +static void verb_setup(void)
> +{
> +	cim_verb_data = mainboard_cim_verb_data;
> +	cim_verb_data_size = sizeof(mainboard_cim_verb_data);
> +}
> +
> +static void mainboard_enable(device_t dev) 
> +{
> +	verb_setup();
> +}
> +
>  struct chip_operations mainboard_ops = {
>  	CHIP_NAME("Supermicro H8DMR Mainboard")
> +	.enable_dev = mainboard_enable,
>  };

So is there absolutely no way for us to avoid that this code is
duplicated for *every* board with such a select?

It seems wrong to automatically add a driver during build, and then
need to call it manually in boards where it was automatically built!

I think this is pretty important. It seems also related to the VSA
situation for the Geode that I worked around in r5581.


//Peter




More information about the coreboot mailing list