diff options
author | Tom Rini <trini@konsulko.com> | 2020-11-17 09:52:34 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-11-17 09:52:34 -0500 |
commit | e800d715e01daffa9a5078c974f4568d6ef9e7c3 (patch) | |
tree | 52929c0bfe30e29c9fc4b3d157456d52e2b7cf05 | |
parent | a575c55d1e8a06173c323cac40e3942af8512c85 (diff) | |
parent | 6e35c1cb12e7be136baf9f44249baa3279ed7b5c (diff) | |
download | u-boot-WIP/17Nov2020.zip u-boot-WIP/17Nov2020.tar.gz u-boot-WIP/17Nov2020.tar.bz2 |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-riscvWIP/17Nov2020
- 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.
-rw-r--r-- | board/emulation/qemu-riscv/Kconfig | 45 | ||||
-rw-r--r-- | doc/board/emulation/qemu-riscv.rst | 8 | ||||
-rw-r--r-- | doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt | 2 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-kendryte.c | 21 |
4 files changed, 47 insertions, 29 deletions
diff --git a/board/emulation/qemu-riscv/Kconfig b/board/emulation/qemu-riscv/Kconfig index 617c4aa..0818048 100644 --- a/board/emulation/qemu-riscv/Kconfig +++ b/board/emulation/qemu-riscv/Kconfig @@ -29,33 +29,40 @@ config BOARD_SPECIFIC_OPTIONS # dummy def_bool y select GENERIC_RISCV select SUPPORT_SPL - imply SYS_NS16550 - imply VIRTIO_MMIO - imply VIRTIO_NET - imply VIRTIO_BLK - imply VIRTIO_PCI + imply AHCI + imply SMP + imply BOARD_LATE_INIT + imply PCI_INIT_R + imply SPL_RAM_SUPPORT + imply SPL_RAM_DEVICE + imply CMD_PCI + imply CMD_POWEROFF + imply CMD_SCSI imply CMD_PING - imply CMD_FS_GENERIC - imply DOS_PARTITION - imply EFI_PARTITION - imply ISO_PARTITION imply CMD_EXT2 imply CMD_EXT4 imply CMD_FAT - imply BOARD_LATE_INIT - imply SIFIVE_SERIAL - imply SMP + imply CMD_FS_GENERIC + imply DOS_PARTITION + imply ISO_PARTITION + imply EFI_PARTITION + imply SCSI_AHCI + imply AHCI_PCI + imply E1000 + imply NVME imply PCI imply DM_PCI imply PCIE_ECAM_GENERIC - imply CMD_PCI - imply E1000 - imply NVME - imply SPL_RAM_SUPPORT - imply SPL_RAM_DEVICE + imply SCSI + imply DM_SCSI + imply SYS_NS16550 + imply SIFIVE_SERIAL imply SYSRESET - imply SYSRESET_SYSCON - imply CMD_POWEROFF imply SYSRESET_CMD_POWEROFF + imply SYSRESET_SYSCON + imply VIRTIO_MMIO + imply VIRTIO_PCI + imply VIRTIO_NET + imply VIRTIO_BLK endif diff --git a/doc/board/emulation/qemu-riscv.rst b/doc/board/emulation/qemu-riscv.rst index b68db95..3acd406 100644 --- a/doc/board/emulation/qemu-riscv.rst +++ b/doc/board/emulation/qemu-riscv.rst @@ -105,3 +105,11 @@ configurations are: qemu-system-riscv64 -nographic -machine virt -bios spl/u-boot-spl \ -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. diff --git a/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt b/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt index 06a9cc0..73871f5 100644 --- a/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt +++ b/doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt @@ -18,7 +18,7 @@ Pin configuration nodes are documented in pinctrl-bindings.txt Required properties for pin-configuration nodes or sub-nodes are: - groups: list of power groups to which the configuration applies. Valid groups are: - A0, A1, A2, B0, B1, B2, C0, C1 + A0, A1, A2, B3, B4, B5, C6, C7 (either this or "pinmux" must be specified) - pinmux: integer array representing pin multiplexing configuration. In addition to the 256 standard functions, each pin can also output the direction diff --git a/drivers/pinctrl/pinctrl-kendryte.c b/drivers/pinctrl/pinctrl-kendryte.c index 5ad049d..0416201 100644 --- a/drivers/pinctrl/pinctrl-kendryte.c +++ b/drivers/pinctrl/pinctrl-kendryte.c @@ -55,8 +55,9 @@ #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_I2C (K210_PC_MODE_IN | K210_PC_IE_INV | K210_PC_SL | \ - K210_PC_OE | K210_PC_OE_INV | K210_PC_PU) +#define K210_PC_MODE_I2C (K210_PC_MODE_IN | K210_PC_SL | K210_PC_OE | \ + 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 | \ K210_PC_MODE_OUT | K210_PC_OE_INV) #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", [1] = "A1", [2] = "A2", - [3] = "B0", - [4] = "B1", - [5] = "B2", - [6] = "C0", - [7] = "C1", + [3] = "B3", + [4] = "B4", + [5] = "B5", + [6] = "C6", + [7] = "C7", }; 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_OUT, K210_PC_DEFAULT_I2C, + K210_PC_DEFAULT_SCCB, K210_PC_DEFAULT_SPI, K210_PC_DEFAULT_GPIO, 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, DEFAULT(OUT), DEFAULT(I2C), + DEFAULT(SCCB), DEFAULT(SPI), DEFAULT(GPIO), [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_D6, IN), FUNC(DVP_D7, IN), - FUNC(SCCB_SCLK, I2C), - FUNC(SCCB_SDA, I2C), + FUNC(SCCB_SCLK, SCCB), + FUNC(SCCB_SDA, SCCB), FUNC(UART1_CTS, IN), FUNC(UART1_DSR, IN), FUNC(UART1_DCD, IN), |