RISC-V: add LiteX SoC support
Subsystems (7)
v4 cover RISC-V: add LiteX SoC support
Changes since v3:
* rebased on top of next branch;
* the "console: support set baudrate for fixed baudrate drivers" patch
is introduced so the "litex serial: add setbrg callback" patch is dropped;
* update mac0 IP-block base addresses in litex dts according to latest SoC configuration.
Changes since v2:
* rebase on top of master branch (f873c7ff2497) +
"RISC-V: extend multi-image to support both S- and M-Mode"
(http://lists.infradead.org/pipermail/barebox/2021-May/036086.html).
* "litex serial: add setbrg callback" patch by Marek Czerski is added
for review;
* fix "clocksource: timer-riscv: select CSR from device tree" patch;
* change gpio IP-block base addresses in litex dts;
* gpio-74xx-mmio uses device_get_match_data() now.
Changes since v1:
* rebased on top of next branch;
* new patches are introduced:
* clocksource: timer-riscv: select CSR from device tree
* RISC-V: make RISCV_SBI and RISCV_M_MODE explicitly mutually exclusive
* RISC-V: make it possible to build RV32I multi-image with DEBUG_LL=n
* almost all of Ahmad's notes are fixed (e.g. unused header files inclusions are dropped);
* NOT FIXED: gpio-74xx-mmio still uses dev_get_drvdata(), not device_get_match_data()
Antony Pavlov (8):
clocksource: timer-riscv: select CSR from device tree
serial: add litex UART driver
console: support set baudrate for fixed baudrate drivers
gpio: add driver for 74xx-ICs with MMIO access
spi: add litex spiflash driver
net: add LiteEth driver
RISC-V: add LiteX SoC and linux-on-litex-vexriscv support
RISC-V: add litex_linux_defconfig
arch/riscv/Kconfig.socs | 14 + arch/riscv/boards/Makefile | 1 + arch/riscv/boards/litex-linux/Makefile | 3 + arch/riscv/boards/litex-linux/lowlevel.c | 22 ++ arch/riscv/configs/litex_linux_defconfig | 75 +++++ arch/riscv/dts/Makefile | 1 + arch/riscv/dts/erizo.dtsi | 2 + arch/riscv/dts/litex-linux.dts | 92 ++++++ arch/riscv/dts/litex_soc_linux.dtsi | 49 +++ arch/riscv/include/asm/debug_ll.h | 3 + arch/riscv/include/asm/debug_ll_litex.h | 123 ++++++++ common/Kconfig | 4 + common/console.c | 10 +- drivers/clocksource/timer-riscv.c | 24 +- drivers/gpio/Kconfig | 14 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-74xx-mmio.c | 165 ++++++++++ drivers/net/Kconfig | 8 + drivers/net/Makefile | 1 + drivers/net/liteeth.c | 376 +++++++++++++++++++++++ drivers/serial/Makefile | 1 + drivers/serial/serial_litex.c | 96 ++++++ drivers/spi/Kconfig | 3 + drivers/spi/Makefile | 1 + drivers/spi/litex_spiflash.c | 241 +++++++++++++++ images/Makefile.riscv | 4 + 26 files changed, 1318 insertions(+), 16 deletions(-) create mode 100644 arch/riscv/boards/litex-linux/Makefile create mode 100644 arch/riscv/boards/litex-linux/lowlevel.c create mode 100644 arch/riscv/configs/litex_linux_defconfig create mode 100644 arch/riscv/dts/litex-linux.dts create mode 100644 arch/riscv/dts/litex_soc_linux.dtsi create mode 100644 arch/riscv/include/asm/debug_ll_litex.h create mode 100644 drivers/gpio/gpio-74xx-mmio.c create mode 100644 drivers/net/liteeth.c create mode 100644 drivers/serial/serial_litex.c create mode 100644 drivers/spi/litex_spiflash.c
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 1/8 clocksource: timer-riscv: select CSR from device tree
barebox timer-riscv driver supports one of user counters:
* 'cycle', counter for RDCYCLE instruction (CSR 0xc00);
* 'time', timer for RDTIME instruction (CSR 0xc01).
At the moment in M-mode timer-riscv uses the 'cycle' counter, and in S-mode timer-riscv uses the 'time' timer.
Alas picorv32 CPU core supports only the 'cycle' counter. VexRiscV CPU core in M-mode supports only the 'time' timer.
This patch makes it possible to use the 'time' timer for VexRiscV CPU in M-mode.
See also http://lists.infradead.org/pipermail/barebox/2021-May/036067.html
--- arch/riscv/dts/erizo.dtsi | 2 ++ drivers/clocksource/timer-riscv.c | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 12 deletions(-)
arch/riscv/dts/erizo.dtsi +2 -0
@@ -22,6 +22,8 @@ timebase-frequency = <24000000>; + barebox,csr-cycle; + cpu@0 { device_type = "cpu"; compatible = "cliffordwolf,picorv32", "riscv";
drivers/clocksource/timer-riscv.c +12 -12
@@ -12,9 +12,8 @@#include <clock.h> #include <asm/timer.h> #include <asm/csr.h> -#include <asm/system.h> -static u64 notrace riscv_timer_get_count_sbi(void) +static u64 notrace riscv_timer_get_count_time(void) {__maybe_unused u32 hi, lo;
@@ -29,7 +28,7 @@ static u64 notrace riscv_timer_get_count_sbi(void)return ((u64 )hi <<32 ) | lo; } -static u64 notrace riscv_timer_get_count_rdcycle(void) +static u64 notrace riscv_timer_get_count_cycle(void) {__maybe_unused u32 hi, lo;
@@ -44,24 +43,25 @@ static u64 notrace riscv_timer_get_count_rdcycle(void)return ((u64 )hi <<32 ) | lo; } -static u64 notrace riscv_timer_get_count(void) -{ -if (riscv_mode () ==RISCV_S_MODE ) -return riscv_timer_get_count_sbi (); -else -return riscv_timer_get_count_rdcycle (); -} -static struct clocksource riscv_clocksource = { - .read = riscv_timer_get_count, .mask =CLOCKSOURCE_MASK (64 ), .priority =100 , };static int riscv_timer_init (struct device_d * dev) { +struct device_node *cpu; +dev_dbg (dev,"running at %lu Hz\n" , riscv_timebase); + cpu =of_find_node_by_path ("/cpus" ); + +if (of_property_read_bool (cpu,"barebox,csr-cycle" )) { + riscv_clocksource.read = riscv_timer_get_count_cycle; + }else { + riscv_clocksource.read = riscv_timer_get_count_time; + } + riscv_clocksource.mult =clocksource_hz2mult (riscv_timebase, riscv_clocksource.shift);return init_clock (&riscv_clocksource);
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 2/8 serial: add litex UART driver
In reply to Antony Pavlov--- drivers/serial/Makefile | 1 + drivers/serial/serial_litex.c | 96 +++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+)
drivers/serial/Makefile +1 -0
@@ -24,3 +24,4 @@ obj-$(CONFIG_DRIVER_SERIAL_DIGIC) += serial_digic.o obj-$(CONFIG_DRIVER_SERIAL_LPUART) += serial_lpuart.o obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o obj-$(CONFIG_SERIAL_SIFIVE) += serial_sifive.o +obj-$(CONFIG_SOC_LITEX) += serial_litex.o
drivers/serial/serial_litex.c new file +96 -0
96 lines not on this page · raw message
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 3/8 console: support set baudrate for fixed baudrate drivers
In reply to Antony PavlovThere are console drivers (linux, virtio, litex) that don't support baud rate setting and has no setbrg (set baudrate) callback, so console_set_baudrate() returns -ENOSYS.
At the other hand console_set_baudrate() SUCCESS return value is needed for the loadx/loady commands correct work.
See discussion here:
http://lists.infradead.org/pipermail/barebox/2021-May/036237.html
--- common/console.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
common/console.c +6 -4
@@ -165,12 +165,12 @@ int console_set_baudrate(struct console_device *cdev, unsigned baudrate)int ret;unsigned char c; -if (!cdev->setbrg) -return -ENOSYS ; -if (cdev->baudrate == baudrate)return 0 ; +if (!cdev->setbrg) +return -ENOSYS ; +/* * If the device is already active, change its baudrate. * The baudrate of an inactive device will be set at activation time.
@@ -336,11 +336,13 @@ int console_register(struct console_device *newcdev) ret = newcdev->setbrg (newcdev, baudrate);if (ret)return ret; - newcdev->baudrate_param = newcdev->baudrate = baudrate; + newcdev->baudrate_param = baudrate;dev_add_param_uint32 (dev,"baudrate" , console_baudrate_set,NULL , &newcdev->baudrate_param,"%u" , newcdev); } + newcdev->baudrate = baudrate; +if (newcdev->putc && !newcdev->puts) newcdev->puts = __console_puts;
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 4/8 gpio: add driver for 74xx-ICs with MMIO access
In reply to Antony PavlovThis patch adds driver to support GPIO functionality for 74xx-compatible ICs with MMIO access.
Compatible models include:
1 bit: 741G125 (Input), 741G74 (Output)
2 bits: 742G125 (Input), 7474 (Output)
4 bits: 74125 (Input), 74175 (Output)
6 bits: 74365 (Input), 74174 (Output)
8 bits: 74244 (Input), 74273 (Output)
16 bits: 741624 (Input), 7416374 (Output)--- drivers/gpio/Kconfig | 14 +++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-74xx-mmio.c | 165 ++++++++++++++++++++++++++++++++++ 3 files changed, 180 insertions(+)
drivers/gpio/Kconfig +14 -0
@@ -21,6 +21,20 @@ config GPIO_74164 shift registers. This driver can be used to provide access to more gpio outputs. +config GPIO_74XX_MMIO + tristate "GPIO driver for 74xx-ICs with MMIO access" + depends on OFDEVICE + select GPIO_GENERIC + help + Say yes here to support GPIO functionality for 74xx-compatible ICs + with MMIO access. Compatible models include: + 1 bit: 741G125 (Input), 741G74 (Output) + 2 bits: 742G125 (Input), 7474 (Output) + 4 bits: 74125 (Input), 74175 (Output) + 6 bits: 74365 (Input), 74174 (Output) + 8 bits: 74244 (Input), 74273 (Output) + 16 bits: 741624 (Input), 7416374 (Output) + config GPIO_CLPS711X bool "GPIO support for CLPS711X" depends on ARCH_CLPS711X || COMPILE_TEST
drivers/gpio/Makefile +1 -0
@@ -1,6 +1,7 @@ obj-$(CONFIG_GPIOLIB) += gpiolib.o obj-$(CONFIG_GPIO_74164) += gpio-74164.o +obj-$(CONFIG_GPIO_74XX_MMIO) += gpio-74xx-mmio.o obj-$(CONFIG_MACH_MIPS_ATH79) += gpio-ath79.o obj-$(CONFIG_GPIO_DAVINCI) += gpio-davinci.o obj-$(CONFIG_GPIO_CLPS711X) += gpio-clps711x.o
drivers/gpio/gpio-74xx-mmio.c new file +165 -0
165 lines not on this page · raw message
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 5/8 spi: add litex spiflash driver
In reply to Antony Pavlov--- drivers/spi/Kconfig | 3 + drivers/spi/Makefile | 1 + drivers/spi/litex_spiflash.c | 241 +++++++++++++++++++++++++++++++++++ 3 files changed, 245 insertions(+)
drivers/spi/Kconfig +3 -0
@@ -74,6 +74,9 @@ config DRIVER_SPI_IMX_2_3 depends on ARCH_IMX50 || ARCH_IMX51 || ARCH_IMX53 || ARCH_IMX6 || ARCH_IMX7 || ARCH_IMX8M default y +config DRIVER_SPI_LITEX_SPIFLASH + bool "Litex SPIFLASH bitbang master driver" + config DRIVER_SPI_MXS bool "i.MX (23,28) SPI Master driver" depends on ARCH_IMX28
drivers/spi/Makefile +1 -0
@@ -4,6 +4,7 @@ obj-$(CONFIG_DRIVER_SPI_ATH79) += ath79_spi.o obj-$(CONFIG_DRIVER_SPI_GPIO) += gpio_spi.o obj-$(CONFIG_DRIVER_SPI_FSL_QUADSPI) += spi-fsl-qspi.o obj-$(CONFIG_DRIVER_SPI_IMX) += imx_spi.o +obj-$(CONFIG_DRIVER_SPI_LITEX_SPIFLASH) += litex_spiflash.o obj-$(CONFIG_DRIVER_SPI_MVEBU) += mvebu_spi.o obj-$(CONFIG_DRIVER_SPI_MXS) += mxs_spi.o obj-$(CONFIG_DRIVER_SPI_ALTERA) += altera_spi.o
drivers/spi/litex_spiflash.c new file +241 -0
241 lines not on this page · raw message
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 6/8 net: add LiteEth driver
In reply to Antony PavlovLiteEth provides a small footprint and configurable Ethernet core.
LiteEth is part of LiteX libraries whose aims are to lower entry level of complex FPGA cores by providing simple, elegant and efficient implementations of components used in today's SoC such as Ethernet, SATA, PCIe, SDRAM Controller...
Using Migen to describe the HDL allows the core to be highly and easily configurable.
LiteEth can be used as LiteX library or can be integrated with your standard design flow by generating the verilog rtl that you will use as a standard core.
See https://github.com/enjoy-digital/liteeth for details.
--- drivers/net/Kconfig | 8 + drivers/net/Makefile | 1 + drivers/net/liteeth.c | 376 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 385 insertions(+)
drivers/net/Kconfig +8 -0
@@ -285,6 +285,14 @@ config TSE_USE_DEDICATED_DESC_MEM reserved with a malloc but directly mapped to the memory address (defined in config.h) +config DRIVER_NET_LITEETH + bool "LiteX ethernet driver" + select PHYLIB + select MDIO_BITBANG + help + This option enables support for the LiteX LiteEth + ethernet IP core. + source "drivers/net/phy/Kconfig" source "drivers/net/usb/Kconfig"
drivers/net/Makefile +1 -0
@@ -38,3 +38,4 @@ obj-$(CONFIG_DRIVER_NET_TAP) += tap.o obj-$(CONFIG_DRIVER_NET_TSE) += altera_tse.o obj-$(CONFIG_DRIVER_NET_EFI_SNP) += efi-snp.o obj-$(CONFIG_DRIVER_NET_AG71XX) += ag71xx.o +obj-$(CONFIG_DRIVER_NET_LITEETH) += liteeth.o
drivers/net/liteeth.c new file +376 -0
376 lines not on this page · raw message
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 7/8 RISC-V: add LiteX SoC and linux-on-litex-vexriscv support
In reply to Antony PavlovLiteX is a Migen-based System on Chip, supporting softcore VexRiscv CPU, a 32-bits Linux Capable RISC-V CPU.
See https://github.com/enjoy-digital/litex and
https://github.com/litex-hub/linux-on-litex-vexriscv
for details.
--- arch/riscv/Kconfig.socs | 14 +++ arch/riscv/boards/Makefile | 1 + arch/riscv/boards/litex-linux/Makefile | 3 + arch/riscv/boards/litex-linux/lowlevel.c | 22 ++++ arch/riscv/dts/Makefile | 1 + arch/riscv/dts/litex-linux.dts | 92 +++++++++++++++++ arch/riscv/dts/litex_soc_linux.dtsi | 49 +++++++++ arch/riscv/include/asm/debug_ll.h | 3 + arch/riscv/include/asm/debug_ll_litex.h | 123 +++++++++++++++++++++++ common/Kconfig | 4 + images/Makefile.riscv | 4 + 11 files changed, 316 insertions(+)
arch/riscv/Kconfig.socs +14 -0
@@ -95,4 +95,18 @@ config SIFIVE_L2 bool "SiFive L2 cache controller" depends on CPU_SIFIVE +config SOC_LITEX + bool "LiteX SoCs" + depends on ARCH_RV32I + select HAS_ASM_DEBUG_LL + select HAS_NMON + select USE_COMPRESSED_DTB + select RISCV_TIMER + +config BOARD_LITEX_LINUX + bool "litex linux board" + depends on SOC_LITEX + select RISCV_M_MODE + def_bool y + endmenu
arch/riscv/boards/Makefile +1 -0
@@ -2,3 +2,4 @@ obj-$(CONFIG_BOARD_ERIZO_GENERIC) += erizo/ obj-$(CONFIG_BOARD_HIFIVE) += hifive/ obj-$(CONFIG_BOARD_BEAGLEV) += beaglev/ +obj-$(CONFIG_BOARD_LITEX_LINUX) += litex-linux/
arch/riscv/boards/litex-linux/Makefile new file +3 -0
@@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 + +pbl-y += lowlevel.o
arch/riscv/boards/litex-linux/lowlevel.c new file +22 -0
@@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include <common.h> +#include <asm/barebox-riscv.h> +#include <debug_ll.h> +#include <asm/riscv_nmon.h> + +ENTRY_FUNCTION(start_litex_linux, a0, a1, a2) +{ +extern char __dtb_z_litex_linux_start[]; +void *fdt; + +barebox_nmon_entry (); + +putc_ll ('>' ); + +/* On POR, we are running from read-only memory here. */ + + fdt = __dtb_z_litex_linux_start +get_runtime_offset (); + +barebox_riscv_machine_entry (0x40000000 ,SZ_256M , fdt); +}
arch/riscv/dts/Makefile +1 -0
@@ -8,5 +8,6 @@ pbl-$(CONFIG_BOARD_ERIZO_GENERIC) += erizo-generic.dtb.o pbl-$(CONFIG_BOARD_HIFIVE) += hifive-unmatched-a00.dtb.o \ hifive-unleashed-a00.dtb.o pbl-$(CONFIG_BOARD_BEAGLEV) += jh7100-beaglev-starlight.dtb.o +pbl-$(CONFIG_BOARD_LITEX_LINUX) += litex-linux.dtb.o clean-files := *.dtb *.dtb.S .*.dtc .*.pre .*.dts
arch/riscv/dts/litex-linux.dts new file +92 -0
92 lines not on this page · raw message
arch/riscv/dts/litex_soc_linux.dtsi new file +49 -0
49 lines not on this page · raw message
arch/riscv/include/asm/debug_ll.h +3 -0
@@ -43,6 +43,9 @@ static inline void PUTC_LL(char ch) writel(ch, uart0); } +#elif defined CONFIG_DEBUG_LITEX + +#include <asm/debug_ll_litex.h> #endif
arch/riscv/include/asm/debug_ll_litex.h new file +123 -0
123 lines not on this page · raw message
common/Kconfig +4 -0
@@ -1399,6 +1399,10 @@ config DEBUG_SIFIVE bool "SiFive serial0 port" depends on SOC_SIFIVE +config DEBUG_LITEX + bool "LiteX serial port" + depends on SOC_LITEX + endchoice config DEBUG_LL_NS16550
images/Makefile.riscv +4 -0
@@ -19,3 +19,7 @@ image-$(CONFIG_BOARD_HIFIVE) += barebox-hifive-unmatched.img barebox-hifive-unle pblb-$(CONFIG_BOARD_BEAGLEV) += start_beaglev_starlight FILE_barebox-beaglev-starlight.img = start_beaglev_starlight.pblb image-$(CONFIG_BOARD_BEAGLEV) += barebox-beaglev-starlight.img + +pblb-$(CONFIG_BOARD_LITEX_LINUX) += start_litex_linux +FILE_barebox-litex-linux.img = start_litex_linux.pblb +image-$(CONFIG_BOARD_LITEX_LINUX) += barebox-litex-linux.img
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v4 8/8 RISC-V: add litex_linux_defconfig
In reply to Antony Pavlov--- arch/riscv/configs/litex_linux_defconfig | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+)
arch/riscv/configs/litex_linux_defconfig new file +75 -0
@@ -0,0 +1,75 @@ +CONFIG_SOC_LITEX=y +CONFIG_STACK_SIZE=0x20000 +CONFIG_MALLOC_SIZE=0xf00000 +CONFIG_MALLOC_TLSF=y +CONFIG_PANIC_HANG=y +CONFIG_BAUDRATE=1000000 +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +# CONFIG_TIMESTAMP is not set +CONFIG_BOOTM_SHOW_TYPE=y +CONFIG_BOOTM_VERBOSE=y +CONFIG_BOOTM_INITRD=y +CONFIG_BOOTM_OFTREE=y +CONFIG_BOOTM_OFTREE_UIMAGE=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_DEBUG_LL=y +CONFIG_LONGHELP=y +CONFIG_CMD_IOMEM=y +CONFIG_CMD_IMD=y +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_GO=y +CONFIG_CMD_LOADY=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_CMP=y +CONFIG_CMD_MD5SUM=y +CONFIG_CMD_SHA1SUM=y +CONFIG_CMD_MSLEEP=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MIITOOL=y +CONFIG_CMD_PING=y +CONFIG_CMD_TFTP=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MM=y +CONFIG_CMD_CLK=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_LED=y +CONFIG_CMD_SPI=y +CONFIG_CMD_LED_TRIGGER=y +CONFIG_CMD_OF_DUMP=y +CONFIG_CMD_TIME=y +CONFIG_CMD_DHRYSTONE=y +CONFIG_NET=y +CONFIG_NET_NFS=y +CONFIG_NET_NETCONSOLE=y +CONFIG_DRIVER_NET_LITEETH=y +CONFIG_AR8327N_PHY=y +CONFIG_AT803X_PHY=y +CONFIG_DAVICOM_PHY=y +CONFIG_DP83867_PHY=y +CONFIG_LXT_PHY=y +CONFIG_MARVELL_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_NATIONAL_PHY=y +CONFIG_REALTEK_PHY=y +CONFIG_SMSC_PHY=y +CONFIG_DRIVER_SPI_LITEX_SPIFLASH=y +CONFIG_MTD=y +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_MTD_M25P80=y +CONFIG_CLOCKSOURCE_DUMMY_RATE=20000 +CONFIG_SRAM=y +CONFIG_LED=y +CONFIG_LED_GPIO=y +CONFIG_LED_GPIO_OF=y +CONFIG_LED_TRIGGERS=y +CONFIG_GPIO_74XX_MMIO=y +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_PINCTRL is not set +CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y +CONFIG_DIGEST_CRC32_GENERIC=y
Signature · 7 lines
2.32.0 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
On Tue, 17 Aug 2021 13:04:27 +0300
Antony Pavlov <[email protected]> wrote:
I have used git format-patch in a inproper way. Sorry!
I'll resend the patchseries.
Quoted 81 lines
Changes since v3:
* rebased on top of next branch;
* the "console: support set baudrate for fixed baudrate drivers" patchis introduced so the "litex serial: add setbrg callback" patch is dropped;* update mac0 IP-block base addresses in litex dts according to latest SoC configuration.
Changes since v2:
* rebase on top of master branch (
f873c7ff2497) +
"RISC-V: extend multi-image to support both S- and M-Mode"
(http://lists.infradead.org/pipermail/barebox/2021-May/036086.html).
* "litex serial: add setbrg callback" patch by Marek Czerski is addedfor review;* fix "clocksource: timer-riscv: select CSR from device tree" patch;
* change gpio IP-block base addresses in litex dts;
* gpio-74xx-mmio usesdevice_get_match_data()now.Changes since v1:
* rebased on top of next branch;
* new patches are introduced:
* clocksource: timer-riscv: select CSR from device tree
* RISC-V: makeRISCV_SBIandRISCV_M_MODEexplicitly mutually exclusive
* RISC-V: make it possible to build RV32I multi-image with DEBUG_LL=n
* almost all of Ahmad's notes are fixed (e.g. unused header files inclusions are dropped);
* NOT FIXED: gpio-74xx-mmio still usesdev_get_drvdata(), notdevice_get_match_data()Antony Pavlov (8):
clocksource: timer-riscv: select CSR from device tree
serial: add litex UART driver
console: support set baudrate for fixed baudrate drivers
gpio: add driver for 74xx-ICs with MMIO access
spi: add litex spiflash driver
net: add LiteEth driver
RISC-V: add LiteX SoC and linux-on-litex-vexriscv support
RISC-V: addlitex_linux_defconfigarch/riscv/Kconfig.socs | 14 + arch/riscv/boards/Makefile | 1 + arch/riscv/boards/litex-linux/Makefile | 3 + arch/riscv/boards/litex-linux/lowlevel.c | 22 ++ arch/riscv/configs/litex_linux_defconfig | 75 +++++ arch/riscv/dts/Makefile | 1 + arch/riscv/dts/erizo.dtsi | 2 + arch/riscv/dts/litex-linux.dts | 92 ++++++ arch/riscv/dts/litex_soc_linux.dtsi | 49 +++ arch/riscv/include/asm/debug_ll.h | 3 + arch/riscv/include/asm/debug_ll_litex.h | 123 ++++++++ common/Kconfig | 4 + common/console.c | 10 +- drivers/clocksource/timer-riscv.c | 24 +- drivers/gpio/Kconfig | 14 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-74xx-mmio.c | 165 ++++++++++ drivers/net/Kconfig | 8 + drivers/net/Makefile | 1 + drivers/net/liteeth.c | 376 +++++++++++++++++++++++ drivers/serial/Makefile | 1 + drivers/serial/serial_litex.c | 96 ++++++ drivers/spi/Kconfig | 3 + drivers/spi/Makefile | 1 + drivers/spi/litex_spiflash.c | 241 +++++++++++++++ images/Makefile.riscv | 4 + 26 files changed, 1318 insertions(+), 16 deletions(-) create mode 100644 arch/riscv/boards/litex-linux/Makefile create mode 100644 arch/riscv/boards/litex-linux/lowlevel.c create mode 100644 arch/riscv/configs/litex_linux_defconfig create mode 100644 arch/riscv/dts/litex-linux.dts create mode 100644 arch/riscv/dts/litex_soc_linux.dtsi create mode 100644 arch/riscv/include/asm/debug_ll_litex.h create mode 100644 drivers/gpio/gpio-74xx-mmio.c create mode 100644 drivers/net/liteeth.c create mode 100644 drivers/serial/serial_litex.c create mode 100644 drivers/spi/litex_spiflash.cSignature · 1 line
2.32.0
Signature · 7 lines
Best regards, Antony Pavlov _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox