At present the GEM support in sifive_u machine is seriously broken. The GEM block register base was set to a weird number (0x100900FC), which for no way could work with the cadence_gem model in QEMU. Not like other GEM variants, the FU540-specific GEM has a management block to control 10/100/1000Mbps link speed changes, that is mapped to 0x100a0000. We can simply map it into MMIO space without special handling using create_unimplemented_device(). Update the GEM node compatible string to use the official name used by the upstream Linux kernel, and add the management block reg base & size to the <reg> property encoding. Tested with upstream U-Boot and Linux kernel MACB drivers. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
40 lines
539 B
Plaintext
40 lines
539 B
Plaintext
config HTIF
|
|
bool
|
|
|
|
config HART
|
|
bool
|
|
|
|
config SIFIVE
|
|
bool
|
|
select MSI_NONBROKEN
|
|
|
|
config SIFIVE_E
|
|
bool
|
|
select HART
|
|
select SIFIVE
|
|
select UNIMP
|
|
|
|
config SIFIVE_U
|
|
bool
|
|
select CADENCE
|
|
select HART
|
|
select SIFIVE
|
|
select UNIMP
|
|
|
|
config SPIKE
|
|
bool
|
|
select HART
|
|
select HTIF
|
|
select SIFIVE
|
|
|
|
config RISCV_VIRT
|
|
bool
|
|
imply PCI_DEVICES
|
|
imply TEST_DEVICES
|
|
select PCI
|
|
select HART
|
|
select SERIAL
|
|
select VIRTIO_MMIO
|
|
select PCI_EXPRESS_GENERIC_BRIDGE
|
|
select SIFIVE
|