[coreboot] r947 - coreboot-v3/northbridge/intel/i440bxemulation

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Oct 23 23:28:39 CEST 2008


On 23.10.2008 14:56, svn at coreboot.org wrote:
> Author: oxygene
> Date: 2008-10-23 14:56:34 +0200 (Thu, 23 Oct 2008)
> New Revision: 947
>
> Modified:
>    coreboot-v3/northbridge/intel/i440bxemulation/domain
>    coreboot-v3/northbridge/intel/i440bxemulation/i440bx.c
> Log:
> Read actual memory size in qemu-i386
>
> Signed-Off-By: Patrick Georgi <patrick at georgi-clan.de>
> Acked-by: Stefan Reinauer <stepan at coresystems.de>
>   

Thanks for the patch. IIRC various qemu versions have different bugs in
that area, so I'd appreciate to know on which version the code was tested.

Please fix up the leftover warning message as indicated below.
The qemu mainboard dts needs to be fixed as well.

Regards,
Carl-Daniel

> Modified: coreboot-v3/northbridge/intel/i440bxemulation/domain
> ===================================================================
> --- coreboot-v3/northbridge/intel/i440bxemulation/domain	2008-10-23 01:18:30 UTC (rev 946)
> +++ coreboot-v3/northbridge/intel/i440bxemulation/domain	2008-10-23 12:56:34 UTC (rev 947)
> @@ -19,6 +19,5 @@
>   */
>  
>  {
> -	ramsize = "128";
>  	device_operations = "i440bx_domain";
>  };
>
> Modified: coreboot-v3/northbridge/intel/i440bxemulation/i440bx.c
> ===================================================================
> --- coreboot-v3/northbridge/intel/i440bxemulation/i440bx.c	2008-10-23 01:18:30 UTC (rev 946)
> +++ coreboot-v3/northbridge/intel/i440bxemulation/i440bx.c	2008-10-23 12:56:34 UTC (rev 947)
> @@ -3,6 +3,7 @@
>   *
>   * Copyright (C) 2000 Ron Minnich, Advanced Computing Lab, LANL
>   * Copyright (C) 2007 Ronald G. Minnich <rminnich at gmail.com>
> + * Copyright (C) 2008 Patrick Georgi <patrick at georgi-clan.de>
>   *
>   * 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
> @@ -43,19 +44,30 @@
>  #include <device/device.h>
>  #include <device/pci.h>
>  #include <string.h>
> +#include <io.h>
>  #include "i440bx.h"
>  #include <statictree.h>
>  
>  /* Here are the ops for 440BX as a PCI domain. */
>  
> +static int inb_cmos(int port)
> +{
> +	outb(port, 0x70);
> +	return inb(0x71);
> +}
> +
>  static void pci_domain_set_resources(struct device *dev)
>  {
>  	struct device *mc_dev;
>  	u32 tolmk;		/* Top of low mem, Kbytes. */
>  	int idx;
> -	struct northbridge_intel_i440bxemulation_domain_config *device_configuration =
> -	    dev->device_configuration;
> -	tolmk = device_configuration->ramsize * 1024;
> +	/* read large mem memory descriptor
> +	   for <16 MB read the more detailed small mem descriptor
> +	   all values in kbytes */
> +	tolmk = ((inb_cmos(0x35)<<8) |inb_cmos(0x34)) * 64;
> +	if (tolmk <= 16 * 1024) {
> +		tolmk = (inb_cmos(0x31)<<8) |inb_cmos(0x30);
> +	}
>  	printk(BIOS_WARNING, "Ignoring chipset specified RAM size. Using dts "
>  		"settings of %d kB instead.\n", tolmk);
>   

This printk referred to the old code and it now is wrong.

>  	mc_dev = dev->link[0].children;
>
>
> --
> coreboot mailing list: coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>
>   


-- 
http://www.hailfinger.org/





More information about the coreboot mailing list