On Thu, Dec 18, 2008 at 7:52 AM, Jordan Crouse <[email protected]>wrote:
> Myles Watson wrote:
>
>> On Thu, Dec 18, 2008 at 3:18 AM, Carl-Daniel Hailfinger <
>> [email protected]> wrote:
>>
>> Bao, Zheng found a bug which killed SATA booting on my board.
>>>
>>> This happened because we do not error out on implicit function
>>> declarations. The linker has no way of checking whether the implicitly
>>> assumed function signature is identical to the real signature, so
>>> mismatches can occur and these mismatches are practically impossible to
>>> debug because the code looks completely correct.
>>>
>>> Adding -Werror-implicit-function-declaration to our CFLAGS would solve
>>> this problem nicely, but a lot of files in the tree need to be fixed.
>>>
>>>
>> I think this is a great idea. Isn't the correct order to fix all the
>> warnings, then make it an error?
>>
>
> Yeah - the unfortunate thing about changes like this is that you end up
> being responsible for fixing the errors.. :)
Here's my first patch. It clears up all of them except get_nodes for
serengeti.
coreboot/svn/src/cpu/amd/dualcore/dualcore.c:63: warning: implicit
declaration of function 'get_nodes'
The rest were easy. This one I'm not sure what was supposed to be here.
> Carl-Daniel - if you post a list of offending files, we'll all help clear
> them up. Dumping the log through grep "implicit declaration of function"
> should suffice.
If you want to take the get_nodes reference, that would be great. If this
is the way its supposed to be cleaned up, I'll keep going a little more. I
think we should divide it up based on processor type so we don't duplicate
work.
Signed-off-by: Myles Watson <[email protected]>
Thanks,
Myles
Index: src/southbridge/amd/amd8111/amd8111_nic.c
===================================================================
--- src/southbridge/amd/amd8111/amd8111_nic.c (revision 3817)
+++ src/southbridge/amd/amd8111/amd8111_nic.c (working copy)
@@ -7,6 +7,7 @@
#include <device/pci_ids.h>
#include <device/pci_ops.h>
#include <arch/io.h>
+#include <delay.h>
#include "amd8111.h"
Index: src/southbridge/amd/amd8111/amd8111.c
===================================================================
--- src/southbridge/amd/amd8111/amd8111.c (revision 3817)
+++ src/southbridge/amd/amd8111/amd8111.c (working copy)
@@ -11,7 +11,7 @@
unsigned index;
unsigned reg_old, reg;
- /* See if we are on the behind the amd8111 pci bridge */
+ /* See if we are on the bus behind the amd8111 pci bridge */
bus_dev = dev->bus->dev;
if ((bus_dev->vendor == PCI_VENDOR_ID_AMD) &&
(bus_dev->device == PCI_DEVICE_ID_AMD_8111_PCI))
Index: src/include/device/pci.h
===================================================================
--- src/include/device/pci.h (revision 3817)
+++ src/include/device/pci.h (working copy)
@@ -72,6 +72,10 @@
unsigned pci_find_capability(device_t dev, unsigned cap);
struct resource *pci_get_resource(struct device *dev, unsigned long index);
void pci_dev_set_subsystem(device_t dev, unsigned vendor, unsigned device);
+void pci_dev_init(struct device *dev);
+void pci_level_irq(unsigned char intNum);
+void pci_assign_irqs(unsigned bus, unsigned slot,
+ const unsigned char pIntAtoD[4]);
#define PCI_IO_BRIDGE_ALIGN 4096
#define PCI_MEM_BRIDGE_ALIGN (1024*1024)
Index: src/cpu/x86/lapic/lapic_cpu_init.c
===================================================================
--- src/cpu/x86/lapic/lapic_cpu_init.c (revision 3817)
+++ src/cpu/x86/lapic/lapic_cpu_init.c (working copy)
@@ -435,6 +435,8 @@
#if WAIT_BEFORE_CPUS_INIT==0
#define cpus_ready_for_init() do {} while(0)
+#else
+ void cpus_ready_for_init(void);
#endif
#if HAVE_SMI_HANDLER
Index: src/northbridge/amd/amdk8/amdk8_f.h
===================================================================
--- src/northbridge/amd/amdk8/amdk8_f.h (revision 3817)
+++ src/northbridge/amd/amdk8/amdk8_f.h (working copy)
@@ -521,6 +521,8 @@
#ifdef __ROMCC__
static void soft_reset(void);
+#else
+void hard_reset(void);
#endif
static void wait_all_core0_mem_trained(struct sys_info *sysinfo)
Index: src/arch/i386/include/arch/acpi.h
===================================================================
--- src/arch/i386/include/arch/acpi.h (revision 3817)
+++ src/arch/i386/include/arch/acpi.h (working copy)
@@ -317,6 +317,8 @@
unsigned long acpi_create_srat_lapics(unsigned long current);
void acpi_create_srat(acpi_srat_t *srat);
+void acpi_create_slit(acpi_slit_t *slit);
+
void acpi_create_hpet(acpi_hpet_t *hpet);
void acpi_create_mcfg(acpi_mcfg_t *mcfg);
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot