Subject: Re: Adaptec 2940UW flashed for Mac on an Ultra5
To: Sean Davis <dive@endersgame.net>
From: Michael <macallan18@earthlink.net>
List: port-sparc64
Date: 03/12/2005 13:39:51
--Signature=_Sat__12_Mar_2005_13_39_51_-0500_O7PcdJ6w3eUz7OdP
Content-Type: multipart/mixed;
 boundary="Multipart=_Sat__12_Mar_2005_13_39_51_-0500_GG.k5pnvTLF5RTdX"


--Multipart=_Sat__12_Mar_2005_13_39_51_-0500_GG.k5pnvTLF5RTdX
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Hello,

> > Hmm, write a small program that enables the ROM ( or do it by hand - pcictl
> > and tweakpci are your friends ), mmap(/dev/mem, whatever_physical_address_it_is_at)
> > and dump it into a file. The PCI stuff is at 0x1ff00000000, so it should be
> > fairly easy to do. Of course this works only if the ROM is really one piece of 128KB.
> > I did something similar on macppc, I could send you the code if you want.
> 
> I would appreciate that. I'm pretty sure I understand what you're suggesting
> - but I've never tried to do anything similar before, so an example would be
> most welcome.

Ok, this little thingie dumps the ROM of an PCI devices - adapting it to sparc64 should be trivial.
The crucial parts are these:
        if(mem=open("/dev/mem",O_RDONLY))
        {
                rom=mmap(NULL,0x10000,PROT_READ,MAP_SHARED,mem,rom_base);
                if(verbose)
                        fprintf(stderr,"rommap: %08x\n",rom);
                if(rom!=(void *)0xffffffff)
                {
                        fwrite(rom,0x10000,1,output);
                }
                munmap(rom,0x10000);

You'll want to change that to 0x20000 to dump 128KB, and to add 0x1ff00000000 to rom_base - the program is intended for macppc where PCI addresses are equivalent to physical memory addresses, that's not the case on Suns. Make sure the ROM is mapped to something useful, eg. not NULL. The base address is in the PCI BAR at 0x30 - pcictl should tell you where it's mapped, pcitweak allows you to change the BARs ( I'll send you the binary if you don't have it - it should come with XFree86 though ). The lowest bit in the BAR controls if the ROM is enabled, the program can set it for you, just make sure it contains some sort of address. In doubt check what's in use and pick something safe by hand, luckily you don't have to worry about collisions too much :)

have fun
Michael

--Multipart=_Sat__12_Mar_2005_13_39_51_-0500_GG.k5pnvTLF5RTdX
Content-Type: application/octet-stream;
 name="romdump.tar.gz"
Content-Disposition: attachment;
 filename="romdump.tar.gz"
Content-Transfer-Encoding: base64

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

--Multipart=_Sat__12_Mar_2005_13_39_51_-0500_GG.k5pnvTLF5RTdX--

--Signature=_Sat__12_Mar_2005_13_39_51_-0500_O7PcdJ6w3eUz7OdP
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (NetBSD)

iQEVAwUBQjM3d8pnzkX8Yg2nAQJsjAgAoVLKWTbRMunpnhD0+7alhSscQrVCYAUe
LRYjVWTzXOHXi3SE5OSPY+hLSDSXXMt29r8TFJE3Wnr/m4oBwFFHoJQmEukhAAHF
NObOgijdVdbebMuvUU8knmyFIx2A32crXVve31IH3NPts8b82ur91ImiO+TdFthk
XdhTTzi3h9QIhKYrJbnkwfDYM7J5SxRCm/q9mNi0lRqM2m0HMK/A9YnypKPpfIYL
5at/Kqy2nQ6YMnqLYKFOiMMlcv58bJQWUbShcZ+ILyB9vRNRj2rwSBPEtq+yDKdu
qLPt4SSnAegAez0ug/njujvV0+VglRS78KOHecqyFOqBZ4WjmUIDbg==
=cktk
-----END PGP SIGNATURE-----

--Signature=_Sat__12_Mar_2005_13_39_51_-0500_O7PcdJ6w3eUz7OdP--