[OpenBIOS] adding eepom node to sparc64

Artyom Tarasenko atar4qemu at gmail.com
Tue May 22 19:11:24 CEST 2012


On Mon, May 21, 2012 at 7:10 PM, Blue Swirl <blauwirbel at gmail.com> wrote:
> On Sun, May 20, 2012 at 10:23 PM, Mark Cave-Ayland
> <mark.cave-ayland at ilande.co.uk> wrote:
>> On 19/05/12 18:21, Blue Swirl wrote:
>>
>>> On Sat, May 19, 2012 at 4:38 PM, Artyom Tarasenko<atar4qemu at gmail.com>
>>>  wrote:
>>>>
>>>> Both Linux and MilaX complain about the missing eeprom / rtc-m48t59 node.
>>>> Since QEMU actually has this device I tried to add it, but not sure
>>>> where is it located.
>>
>>
>> Oooh this will be interesting as Milax currently fails when it fails to
>> detect this device - fixing it should get Solaris to boot further. This has
>> also been on my list for a while, but so much to do, not enough time...
>>
>>
>>>> In sun4u.c it's initialized like this:
>>>>
>>>> nvram = m48t59_init_isa(isa_bus, 0x0074, NVRAM_SIZE, 59);
>>>>
>>>> Is 0x74 the offset to the ISA bus? Then it's wired not as on Ultra-5:
>>>>
>>>>                Node 0xf00662d8
>>>>                    address:  fffba000
>>>>                    reg:  00000014.00000000.00002000
>>>>                    model:  'mk48t59'
>>>>                    name:  'eeprom'
>>>>
>>>> Here it looks like it had to be aligned to a beginning of a page,
>>>> which makes sense because of the large size...
>>>> So, where QEMU's 0x74 are coming from?
>>>
>>>
>>> It's the I/O port used by PPC. Looking at the reg, it should be using
>>> MMIO at address 0 instead.
>>
>>
>> FWIW I've just had a discussion on qemu-devel and the outcome was that the
>> <device>_init() functions are generally just shortcuts to the most common
>> "wiring" of the peripherals into a machine. So I suspect you'll need to copy
>> the _init() function as sun4_m48t59_init() and customise as required.
>
> We're now using m48t59_init_isa(), we could instead use m48t59_init()
> with zero ports. But this would create a SysBusDevice behind Ebus
> which is behind PCI, so PCI BAR changes would not propagate.

Yes, I rather thought about adding the mem_base parameter to the
m48t59_init_isa() function, similar to m48t59_init() .


-- 
Regards,
Artyom Tarasenko

solaris/sparc under qemu blog: http://tyom.blogspot.com/search/label/qemu



More information about the OpenBIOS mailing list