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();
On 26.09.2007 11:28, Carl-Daniel Hailfinger wrote:
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.
Parts are now committed, two patches remain, one is in Ron's queue to check, the other one will be posted separately.
Carl-Daniel