[LinuxBIOS] MSI ms9185 linuxbios support
Stefan Reinauer
stepan at coresystems.de
Fri Oct 27 10:20:57 CEST 2006
* bxshi at msik.com.cn <bxshi at msik.com.cn> [061027 04:06]:
> Index: src/southbridge/broadcom/bcm5785/bcm5785_sata.c
> ===================================================================
> --- src/southbridge/broadcom/bcm5785/bcm5785_sata.c (revision 2475)
> +++ src/southbridge/broadcom/bcm5785/bcm5785_sata.c (working copy)
> @@ -30,6 +32,21 @@
>
> res = find_resource(dev, 0x24);
> base = res->base;
> +
> + mmio_base = base;
> + mmio_base &= 0xfffffffc;
> + mmio_reg = (unsigned int *)( mmio_base + 0x10f0 );
> + * mmio_reg = 0x40000001;
> + mmio_reg = ( unsigned int *)( mmio_base + 0x8c );
> + * mmio_reg = 0x00ff2007;
> + mdelay( 10 );
> + * mmio_reg = 0x78592009;
> + mdelay( 10 );
> + * mmio_reg = 0x00082004;
> + mdelay( 10 );
> + * mmio_reg = 0x00002004;
> + mdelay( 10 );
> +
> //init PHY
>
> printk_debug("init PHY...\n");
This is great stuff ;-) Can you add some comment like
/* magic command sequence required for: <something> */
> Index: src/devices/emulator/biosemu.c
> ===================================================================
> --- src/devices/emulator/biosemu.c (revision 2475)
> +++ src/devices/emulator/biosemu.c (working copy)
> @@ -121,6 +121,7 @@
> case 0x42:
> case 0x6D:
> if (getIntVect(num) == 0x0000) {
> + ret = 1 ; /*to make vga work*/
> printk_debug("un-inited int vector\n");
> }
Is it really trying to set the video mode to
00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
at some point?
maybe we need to fix this in the 0x400 bios area instead?
I believe we want to revive parts of this instead:
/*
* here we are really paranoid about faking a "real"
* BIOS. Most of this information was pulled from
* dosemu.
*/
void setup_int_vect(void)
[..]
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
More information about the coreboot
mailing list