Since my hard drive literally screamed at me today, I figured it is time to send my current raw v3 diff to the list. Some parts of it are already acked, some are just reminders something is wrong.
Carl-Daniel
Index: include/device/device.h =================================================================== --- include/device/device.h (Revision 498) +++ include/device/device.h (Arbeitskopie) @@ -202,7 +202,7 @@ struct resource resource[MAX_RESOURCES]; unsigned int resources;
- /* link are (down sream) buses attached to the device, usually a leaf + /* link are (downstream) buses attached to the device, usually a leaf * device with no children have 0 buses attached and a bridge has 1 bus */ struct bus link[MAX_LINKS]; Index: mainboard/adl/msm800sev/stage1.c =================================================================== --- mainboard/adl/msm800sev/stage1.c (Revision 498) +++ mainboard/adl/msm800sev/stage1.c (Arbeitskopie) @@ -33,7 +33,8 @@ #include <southbridge/amd/cs5536/cs5536.h> #include <superio/winbond/w83627hf/w83627hf.h>
-#define SERIAL_DEV 0x30 +#define SERIAL_DEV W83627HF_SP1 +#define SERIAL_IOBASE 0x3f8
void hardware_stage1(void) { @@ -49,6 +50,6 @@ * for cs5536 */ cs5536_disable_internal_uart(); - w83627hf_enable_serial(0x2e, 0x30, 0x3f8); + w83627hf_enable_serial(0x2e, SERIAL_DEV, SERIAL_IOBASE); printk(BIOS_DEBUG, "Done %s\n", __FUNCTION__); } Index: device/device.c =================================================================== --- device/device.c (Revision 498) +++ device/device.c (Arbeitskopie) @@ -260,8 +260,10 @@ for (curdev = bus->children; curdev; curdev = curdev->sibling) { unsigned int links; int i; - printk(BIOS_SPEW, "%s: %s(%s) have_resources %d enabled %d\n", + printk(BIOS_SPEW, + "%s: %s(%s) dtsname %s have_resources %d enabled %d\n", __func__, bus->dev->dtsname, dev_path(bus->dev), + curdev->dtsname, curdev->have_resources, curdev->enabled); if (curdev->have_resources) { continue; Index: lib/lar.c =================================================================== --- lib/lar.c (Revision 498) +++ lib/lar.c (Arbeitskopie) @@ -90,7 +90,7 @@ * Unsigned pointer arithmetic that wraps to zero can be messy. */ for (walk = archive->start; - (walk < (char *)(archive->start + archive->len - sizeof(struct lar_header))) && + (walk <= (char *)(archive->start + archive->len - sizeof(struct lar_header))) && (walk >= (char *)archive->start); walk += 16) { if (strncmp(walk, MAGIC, 8) != 0) continue; Index: lib/stage2.c =================================================================== --- lib/stage2.c (Revision 498) +++ lib/stage2.c (Arbeitskopie) @@ -31,8 +31,9 @@ /** * Main function of the DRAM part of LinuxBIOS. * - * LinuxBIOS is divided into pre-DRAM part and DRAM part. The phases before - * this part are phase 0 and phase 1. This part contains phases x through y. + * LinuxBIOS is divided into pre-DRAM part and DRAM part. The stages before + * this part are stage 0 and stage 1. This part contains stage 2, which + * consists of phases 1 through 6. * * Device Enumeration: in the dev_enumerate() phase. * @@ -53,6 +54,7 @@
post_code(0x20);
+ /* TODO: Explain why we use printk here although it is impossible */ printk(BIOS_NOTICE, console_test);
dev_init();