- Enable SATA disk on QEMU RISC-V and update doc.
- k210 pinctrl updates:
  - Fix inverted IE and OE for I2C.
  - Rename power domains to match datasheet.
This commit is contained in:
Tom Rini 2020-11-17 09:52:34 -05:00
commit e800d715e0
4 changed files with 47 additions and 29 deletions

View file

@ -29,33 +29,40 @@ config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y def_bool y
select GENERIC_RISCV select GENERIC_RISCV
select SUPPORT_SPL select SUPPORT_SPL
imply SYS_NS16550 imply AHCI
imply VIRTIO_MMIO imply SMP
imply VIRTIO_NET imply BOARD_LATE_INIT
imply VIRTIO_BLK imply PCI_INIT_R
imply VIRTIO_PCI imply SPL_RAM_SUPPORT
imply SPL_RAM_DEVICE
imply CMD_PCI
imply CMD_POWEROFF
imply CMD_SCSI
imply CMD_PING imply CMD_PING
imply CMD_FS_GENERIC
imply DOS_PARTITION
imply EFI_PARTITION
imply ISO_PARTITION
imply CMD_EXT2 imply CMD_EXT2
imply CMD_EXT4 imply CMD_EXT4
imply CMD_FAT imply CMD_FAT
imply BOARD_LATE_INIT imply CMD_FS_GENERIC
imply SIFIVE_SERIAL imply DOS_PARTITION
imply SMP imply ISO_PARTITION
imply EFI_PARTITION
imply SCSI_AHCI
imply AHCI_PCI
imply E1000
imply NVME
imply PCI imply PCI
imply DM_PCI imply DM_PCI
imply PCIE_ECAM_GENERIC imply PCIE_ECAM_GENERIC
imply CMD_PCI imply SCSI
imply E1000 imply DM_SCSI
imply NVME imply SYS_NS16550
imply SPL_RAM_SUPPORT imply SIFIVE_SERIAL
imply SPL_RAM_DEVICE
imply SYSRESET imply SYSRESET
imply SYSRESET_SYSCON
imply CMD_POWEROFF
imply SYSRESET_CMD_POWEROFF imply SYSRESET_CMD_POWEROFF
imply SYSRESET_SYSCON
imply VIRTIO_MMIO
imply VIRTIO_PCI
imply VIRTIO_NET
imply VIRTIO_BLK
endif endif

View file

@ -105,3 +105,11 @@ configurations are:
qemu-system-riscv64 -nographic -machine virt -bios spl/u-boot-spl \ qemu-system-riscv64 -nographic -machine virt -bios spl/u-boot-spl \
-device loader,file=u-boot.itb,addr=0x80200000 -device loader,file=u-boot.itb,addr=0x80200000
An attached disk can be emulated by adding::
-device ich9-ahci,id=ahci \
-drive if=none,file=riscv64.img,format=raw,id=mydisk \
-device ide-hd,drive=mydisk,bus=ahci.0
You will have to run 'scsi scan' to use it.

View file

@ -18,7 +18,7 @@ Pin configuration nodes are documented in pinctrl-bindings.txt
Required properties for pin-configuration nodes or sub-nodes are: Required properties for pin-configuration nodes or sub-nodes are:
- groups: list of power groups to which the configuration applies. Valid groups - groups: list of power groups to which the configuration applies. Valid groups
are: are:
A0, A1, A2, B0, B1, B2, C0, C1 A0, A1, A2, B3, B4, B5, C6, C7
(either this or "pinmux" must be specified) (either this or "pinmux" must be specified)
- pinmux: integer array representing pin multiplexing configuration. In addition - pinmux: integer array representing pin multiplexing configuration. In addition
to the 256 standard functions, each pin can also output the direction to the 256 standard functions, each pin can also output the direction

View file

@ -55,8 +55,9 @@
#define K210_PC_MODE_IN (K210_PC_IE | K210_PC_ST) #define K210_PC_MODE_IN (K210_PC_IE | K210_PC_ST)
#define K210_PC_MODE_OUT (K210_PC_DRIVE_7 | K210_PC_OE) #define K210_PC_MODE_OUT (K210_PC_DRIVE_7 | K210_PC_OE)
#define K210_PC_MODE_I2C (K210_PC_MODE_IN | K210_PC_IE_INV | K210_PC_SL | \ #define K210_PC_MODE_I2C (K210_PC_MODE_IN | K210_PC_SL | K210_PC_OE | \
K210_PC_OE | K210_PC_OE_INV | K210_PC_PU) K210_PC_PU)
#define K210_PC_MODE_SCCB (K210_PC_MODE_I2C | K210_PC_OE_INV | K210_PC_IE_INV)
#define K210_PC_MODE_SPI (K210_PC_MODE_IN | K210_PC_IE_INV | \ #define K210_PC_MODE_SPI (K210_PC_MODE_IN | K210_PC_IE_INV | \
K210_PC_MODE_OUT | K210_PC_OE_INV) K210_PC_MODE_OUT | K210_PC_OE_INV)
#define K210_PC_MODE_GPIO (K210_PC_MODE_IN | K210_PC_MODE_OUT) #define K210_PC_MODE_GPIO (K210_PC_MODE_IN | K210_PC_MODE_OUT)
@ -152,11 +153,11 @@ static const char k210_pc_group_names[][3] = {
[0] = "A0", [0] = "A0",
[1] = "A1", [1] = "A1",
[2] = "A2", [2] = "A2",
[3] = "B0", [3] = "B3",
[4] = "B1", [4] = "B4",
[5] = "B2", [5] = "B5",
[6] = "C0", [6] = "C6",
[7] = "C1", [7] = "C7",
}; };
static int k210_pc_get_groups_count(struct udevice *dev) static int k210_pc_get_groups_count(struct udevice *dev)
@ -176,6 +177,7 @@ enum k210_pc_mode_id {
K210_PC_DEFAULT_IN_TIE, K210_PC_DEFAULT_IN_TIE,
K210_PC_DEFAULT_OUT, K210_PC_DEFAULT_OUT,
K210_PC_DEFAULT_I2C, K210_PC_DEFAULT_I2C,
K210_PC_DEFAULT_SCCB,
K210_PC_DEFAULT_SPI, K210_PC_DEFAULT_SPI,
K210_PC_DEFAULT_GPIO, K210_PC_DEFAULT_GPIO,
K210_PC_DEFAULT_INT13, K210_PC_DEFAULT_INT13,
@ -189,6 +191,7 @@ static const u32 k210_pc_mode_id_to_mode[] = {
[K210_PC_DEFAULT_IN_TIE] = K210_PC_MODE_IN, [K210_PC_DEFAULT_IN_TIE] = K210_PC_MODE_IN,
DEFAULT(OUT), DEFAULT(OUT),
DEFAULT(I2C), DEFAULT(I2C),
DEFAULT(SCCB),
DEFAULT(SPI), DEFAULT(SPI),
DEFAULT(GPIO), DEFAULT(GPIO),
[K210_PC_DEFAULT_INT13] = K210_PC_MODE_IN | K210_PC_PU, [K210_PC_DEFAULT_INT13] = K210_PC_MODE_IN | K210_PC_PU,
@ -362,8 +365,8 @@ static const struct k210_pcf_info k210_pcf_infos[] = {
FUNC(DVP_D5, IN), FUNC(DVP_D5, IN),
FUNC(DVP_D6, IN), FUNC(DVP_D6, IN),
FUNC(DVP_D7, IN), FUNC(DVP_D7, IN),
FUNC(SCCB_SCLK, I2C), FUNC(SCCB_SCLK, SCCB),
FUNC(SCCB_SDA, I2C), FUNC(SCCB_SDA, SCCB),
FUNC(UART1_CTS, IN), FUNC(UART1_CTS, IN),
FUNC(UART1_DSR, IN), FUNC(UART1_DSR, IN),
FUNC(UART1_DCD, IN), FUNC(UART1_DCD, IN),