On Sat, Jun 5, 2010 at 8:25 PM, Bob Breuer <breu...@mc.net> wrote:
> Blue Swirl wrote:
>> On Fri, Jun 4, 2010 at 5:40 PM, Artyom Tarasenko
>> <atar4q...@googlemail.com> wrote:
>>
>>>>>> 2010/5/27 Bob Breuer <breu...@mc.net>:
>>>>>> +    /* DBRI (audio) */
>>>>>> +    cpu_register_physical_memory_offset(0xEE0001000ULL, 0x10000, 
>>>>>> bad_mem, 0xE0001000);
>>>>>>
>>>>> Please add a new DBRI device ;-).
>>>>>
>>>> Or maybe just a field in hwdef + empty_slot? :-)
>>>>
>>> Or actually don't bother at all. What is expected at 0xee0001000 is
>>> not the DBRI device, but its FCode driver.
>>> I wrote a stub, but don't see that it helps to boot except one has a
>>> nice device name (
>>>
>>> Probing /obio at 2,0  cgfourteen
>>> Probing /io...@f,e0000000/s...@f,e0001000 at f,0  espdma esp sd st
>>> ledma le SUNW,bpp
>>> Probing /io...@f,e0000000/s...@f,e0001000 at e,0  qemu,device-stub
>>> Probing /io...@f,e0000000/s...@f,e0001000 at 0,0  Nothing there
>>>
>>>  ) and switching off slot "e" probing is not necessary.
>>>
>>>
>>> What would be nice is a generic '-option-rom' switch which would take
>>> a rom address and rom file or contents
>>> as params. Or do we have something like this? I mean for qemu-system-sparc.
>>>
>>
>> Maybe SysBusDeviceInfo should have something similar to PCI .romfile
>> field, or we should rather have a SBusDeviceInfo. That way ROM
>> handling would be automatic.
>>
>
> With empty_slot SS-20 OBP accesses just 2 addresses for slot E:
>    0xEE0001000 - 8bit read (FCode)
>    0xEE0010000 - 32bit write (put DBRI into reset)
>
> Did a little digging, slot E starts at 0xEE0000000 (0xE << 32 | slot <<
> 28).  On my SS-20, the DBRI FCode is only 48 bytes which is then
> mirrored every 64 bytes within at least the first 8K, and the actual
> registers are at offset 64K with a reported length of 256 bytes.
>
> Besides hooking up DBRI (empty_slot or not), I would propose the
> following additions to the sun4m_hwdef structure so that the other
> missing pieces can then be hooked up to empty_slot.
>
> --- a/hw/sun4m.c
> +++ b/hw/sun4m.c
> @@ -98,6 +98,10 @@ struct sun4m_hwdef {
>     target_phys_addr_t serial_base, fd_base;
>     target_phys_addr_t afx_base, idreg_base, dma_base, esp_base, le_base;
>     target_phys_addr_t tcx_base, cs_base, apc_base, aux1_base, aux2_base;
> +    target_phys_addr_t dbri_base, sx_base;
> +    struct {
> +        target_phys_addr_t reg_base, vram_base;
> +    } vsimm[4];

OK by itself, but again: should we have a new machine with cg14 or
some switch to select TCX vs. cg14?

Maybe the recently proposed machine subtype patches could help here.

>     target_phys_addr_t ecc_base;
>     uint32_t ecc_version;
>     uint8_t nvram_machine_id;
>
> Also, looks like OpenBIOS would need some additional ranges added under
> obio and sbus.  From a SS-20:
> ok cd /obio
> ok .attributes
> ranges                   00000000  00000000  0000000f  f1000000  01000000
>                         00000001  00000000  00000000  90000000  04000000
>                         00000002  00000000  00000000  9c000000  04000000
>                         00000003  00000000  00000000  f0000000  04000000
>                         00000004  00000000  00000000  fc000000  04000000
> device_type              hierarchical
> name                     obio
> ok cd /iommu/sbus
> ok .attributes
> clock-frequency          017d7840
> scsi-initiator-id        00000007
> burst-sizes              00f8007f
> ranges                   00000000  00000000  0000000e  00000000  10000000
>                         00000001  00000000  0000000e  10000000  10000000
>                         00000002  00000000  0000000e  20000000  10000000
>                         00000003  00000000  0000000e  30000000  10000000
>                         0000000e  00000000  0000000e  e0000000  10000000
>                         0000000f  00000000  0000000e  f0000000  10000000
> address                  ffeec000
> reg                      0000000f  e0001000  00000020
> slot-address-bits        0000001c
> up-burst-sizes           0000003f
> device_type              hierarchical
> name                     sbus

Again, the question is how to pass cg14 vs. TCX info to OpenBIOS.

Reply via email to