> Date: Fri, 25 Jun 2021 21:41:38 +0200
> From: Mickael Torres <[email protected]>
> 
> On Fri, 25 Jun 2021 18:26:31 +0200 (CEST)
> Mark Kettenis <[email protected]> wrote:
> 
> > > Date: Fri, 25 Jun 2021 16:13:27 +0000
> > > From: "Mickael Torres" <[email protected]>
> > > 
> > > Hello,
> > > 
> > > This enables radeondrm/amdgpu and wsconsole/kbd/mouse on risc-v.
> > > This was tested with a radeondrm "7:0:0: ATI Radeon HD 7450" (see
> > > dmesg at the end), I'll try to test amdgpu with an RX550 during the
> > > week end.
> > > 
> > > X doesn't start because of undefined symbols in modesetting_drv.so
> > > (see below), but I didn't take a look yet.
> > 
> > Hi Mickael,
> > 
> > Cool.  Will take a proper look at this later.  Some of your fixes
> > overlap with changes that we already have pending but aren't committed
> > yet.  But there are some good fixes in here.
> > 
> > There is a small problem though.  Your e-mail client seems to replace
> > tabs with spaces, which means your patches don't apply.  You may be
> > able to fix that in your e-mail client.  As a last resort you could
> > include your diffs *both* inline and as an attachment.
> > 
> > Cheers,
> > 
> > Mark
> > 
> 
> Hi Mark,
> 
> Here is a new version of the diff, based on an up-to-date tree, and
> (hopefully) with tabs as tabs.
> 
> Best,
> Mickael

Hi Mickael,

It has tabs now, but this version has wrapped lines :(.  Modern e-mail
clients try very hard to corrupt diffs unfortunately.

Meanwhile I did commit your dwpcie(4) fix, and matthieu@ has committed
his version of the diff.  He only added radeondrm(4) for now, so a
diff (and tests) for amdgpu(4) is still welcome.

Apparently X works now, although you need an ld.so diff that hasn't
been committed yet.  But that should be fixed soon.

Thanks,

Mark


> Index: sys/arch/riscv64/conf/GENERIC
> ===================================================================
> RCS file: /cvs/src/sys/arch/riscv64/conf/GENERIC,v
> retrieving revision 1.23
> diff -u -p -u -r1.23 GENERIC
> --- sys/arch/riscv64/conf/GENERIC     23 Jun 2021 15:26:10
> -0000 1.23 +++ sys/arch/riscv64/conf/GENERIC  25 Jun 2021
> 18:37:25 -0000 @@ -103,9 +103,11 @@ usb*              at xhci?
>  # USB devices
>  uhub*                at usb?
>  uhub*                at uhub?
> -#uhidev*     at uhub?
> -#ukbd*               at uhidev?
> -#wskbd*              at ukbd? mux 1
> +uhidev*              at uhub?
> +ukbd*                at uhidev?
> +wskbd*               at ukbd? mux 1
> +ums*         at uhidev?      # USB mouse
> +wsmouse*     at ums? mux 0
>  umass*               at uhub?
>  aue*         at uhub?        # ADMtek AN986 Pegasus Ethernet
>  atu*         at uhub?        # Atmel AT76c50x based 802.11b
> @@ -148,5 +150,17 @@ sqphy*           at mii?         #
> Seeq 8x220 PHYs ukphy*                at mii?         #
> "unknown" PHYs urlphy*                at mii?         # Realtek
> RTL8150L internal PHY 
> +radeondrm*   at pci?
> +drm*         at radeondrm?
> +wsdisplay*   at radeondrm?
> +amdgpu*              at pci?
> +drm*         at amdgpu?
> +wsdisplay*   at amdgpu?
> +
> +option WSDISPLAY_COMPAT_USL          # VT handling
> +option WSDISPLAY_COMPAT_RAWKBD               # provide raw scancodes;
> needed for X11 +option WSDISPLAY_DEFAULTSCREENS=6     # initial
> number of text consoles +
>  # Pseudo-Devices
>  pseudo-device        openprom
> +pseudo-device        wsmux           2
> Index: sys/arch/riscv64/conf/Makefile.riscv64
> ===================================================================
> RCS file: /cvs/src/sys/arch/riscv64/conf/Makefile.riscv64,v
> retrieving revision 1.10
> diff -u -p -u -r1.10 Makefile.riscv64
> --- sys/arch/riscv64/conf/Makefile.riscv64    18 May 2021 12:24:12
> -0000 1.10 +++ sys/arch/riscv64/conf/Makefile.riscv64 25
> Jun 2021 18:37:25 -0000 @@ -21,7 +21,25 @@ S!=        cd ../../../..;
> pwd _machdir?=        $S/arch/${_mach}
>  _archdir?=   $S/arch/${_arch}
>  
> -INCLUDES=    -nostdinc -I$S -I${.OBJDIR} -I$S/arch
> +INCLUDES=    -nostdinc -I$S -I${.OBJDIR} -I$S/arch \
> +             -I$S/dev/pci/drm/include \
> +             -I$S/dev/pci/drm/include/uapi \
> +             -I$S/dev/pci/drm/amd/include/asic_reg \
> +             -I$S/dev/pci/drm/amd/include \
> +             -I$S/dev/pci/drm/amd/amdgpu \
> +             -I$S/dev/pci/drm/amd/display \
> +             -I$S/dev/pci/drm/amd/display/include \
> +             -I$S/dev/pci/drm/amd/display/dc \
> +             -I$S/dev/pci/drm/amd/display/amdgpu_dm \
> +             -I$S/dev/pci/drm/amd/powerplay/inc \
> +             -I$S/dev/pci/drm/amd/powerplay/smumgr \
> +             -I$S/dev/pci/drm/amd/powerplay/hwmgr \
> +             -I$S/dev/pci/drm/amd/display/dc/inc \
> +             -I$S/dev/pci/drm/amd/display/dc/inc/hw \
> +             -I$S/dev/pci/drm/amd/display/dc/clk_mgr \
> +             -I$S/dev/pci/drm/amd/display/modules/inc \
> +             -I$S/dev/pci/drm/amd/display/modules/hdcp \
> +             -I$S/dev/pci/drm/amd/display/dmub/inc
>  CPPFLAGS=    ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL
> -D__${_mach}__ -MD -MP CWARNFLAGS=    -Werror -Wall
> -Wimplicit-function-declaration \ -Wno-uninitialized -Wno-pointer-sign \
> Index: sys/arch/riscv64/conf/files.riscv64
> ===================================================================
> RCS file: /cvs/src/sys/arch/riscv64/conf/files.riscv64,v
> retrieving revision 1.14
> diff -u -p -u -r1.14 files.riscv64
> --- sys/arch/riscv64/conf/files.riscv64       17 Jun 2021 16:10:50
> -0000 1.14 +++ sys/arch/riscv64/conf/files.riscv64    25 Jun
> 2021 18:37:25 -0000 @@ -137,3 +137,7 @@ file
> dev/fdt/pciecam.c                     pciecam # Machine-independent
> USB drivers include "dev/usb/files.usb"
>  
> +# Include WSCONS stuff
> +include "dev/wscons/files.wscons"
> +include "dev/rasops/files.rasops"
> +include "dev/wsfont/files.wsfont"
> Index: sys/arch/riscv64/riscv64/conf.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/riscv64/riscv64/conf.c,v
> retrieving revision 1.9
> diff -u -p -u -r1.9 conf.c
> --- sys/arch/riscv64/riscv64/conf.c   19 May 2021 20:37:16
> -0000 1.9 +++ sys/arch/riscv64/riscv64/conf.c 25 Jun 2021
> 18:37:25 -0000 @@ -102,6 +102,11 @@ cdev_decl(pci);
>  #include "ipmi.h"
>  #include "switch.h"
>  
> +#include "wsdisplay.h"
> +#include "wskbd.h"
> +#include "wsmouse.h"
> +#include "wsmux.h"
> +
>  struct cdevsw        cdevsw[] =
>  {
>       cdev_cn_init(1,cn),             /* 0: virtual console */
> @@ -116,7 +121,8 @@ struct cdevsw     cdevsw[] =
>       cdev_notdef(),                  /* 9: was floppy disk */
>       cdev_notdef(),                  /* 10 */
>       cdev_notdef(),                  /* 11: Sony CD-ROM */
> -     cdev_notdef(),                  /* 12: frame buffers,
> etc. */
> +     cdev_wsdisplay_init(NWSDISPLAY, /* 12: frame buffers,
> etc. */
> +         wsdisplay),
>       cdev_disk_init(NSD,sd),         /* 13: SCSI disk */
>       cdev_notdef(),                  /* 14: was: SCSI tape */
>       cdev_disk_init(NCD,cd),         /* 15: SCSI CD-ROM */
> @@ -173,9 +179,10 @@ struct cdevsw    cdevsw[] =
>       cdev_notdef(),                  /* 64: USB printers */
>       cdev_notdef(),                  /* 65: urio */
>       cdev_notdef(),                  /* 66: USB tty */
> -     cdev_notdef(),                  /* 67: keyboards */
> -     cdev_notdef(),                  /* 68: mice */
> -     cdev_notdef(),                  /* 69: ws multiplexor */
> +     cdev_mouse_init(NWSKBD, wskbd), /* 67: keyboards */
> +     cdev_mouse_init(NWSMOUSE,       /* 68: mice */
> +         wsmouse),
> +     cdev_mouse_init(NWSMUX, wsmux), /* 69: ws multiplexor */
>       cdev_openprom_init(NOPENPROM,openprom), /* 70:
> /dev/openprom */ cdev_notdef(),                       /* 71: was:
> Cyclades-Z serial port */ #ifdef USER_PCICONF
> Index: sys/dev/fdt/dwpcie.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/fdt/dwpcie.c,v
> retrieving revision 1.34
> diff -u -p -u -r1.34 dwpcie.c
> --- sys/dev/fdt/dwpcie.c      25 Jun 2021 17:41:22 -0000      1.34
> +++ sys/dev/fdt/dwpcie.c      25 Jun 2021 19:31:46 -0000
> @@ -1373,12 +1373,12 @@ dwpcie_bs_memmap(bus_space_tag_t t, bus_
>               uint64_t pci_end = pci_start + sc->sc_ranges[i].size;
>               uint64_t phys_start = sc->sc_ranges[i].phys_base;
>  
> -             if ((sc->sc_ranges[i].flags & 0x03000000) ==
> 0x02000000 &&
> +             if ((sc->sc_ranges[i].flags & 0x02000000) ==
> 0x02000000 && addr >= pci_start && addr + size <= pci_end) {
>                       return bus_space_map(sc->sc_iot,
>                           addr - pci_start + phys_start, size,
> flags, bshp); }
>       }
> -     
> +
>       return ENXIO;
>  }
> Index: sys/dev/pci/drm/include/linux/pci.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/include/linux/pci.h,v
> retrieving revision 1.5
> diff -u -p -u -r1.5 pci.h
> --- sys/dev/pci/drm/include/linux/pci.h       8 Jun 2020 04:48:15
> -0000 1.5 +++ sys/dev/pci/drm/include/linux/pci.h     25 Jun
> 2021 18:37:26 -0000 @@ -395,7 +395,7 @@ pci_get_class(pcireg_t class,
> struct pci #define PCI_CLASS_DISPLAY_OTHER \
>      (PCI_CLASS_DISPLAY | PCI_SUBCLASS_DISPLAY_MISC)
>  
> -#if defined(__amd64__) || defined(__arm64__) || defined(__i386__)
> +#if defined(__amd64__) || defined(__arm64__) || defined(__i386__) ||
> defined(__riscv64__) 
>  #define PCI_DMA_BIDIRECTIONAL        0
>  
> @@ -419,6 +419,6 @@ pci_dma_mapping_error(struct pci_dev *pd
>  #define pci_set_dma_mask(x, y)                       0
>  #define pci_set_consistent_dma_mask(x, y)    0
>  
> -#endif /* defined(__amd64__) || defined(__arm64__) ||
> defined(__i386__) */ +#endif /* defined(__amd64__) ||
> defined(__arm64__) || defined(__i386__) || defined(__riscv64__) */ 
>  #endif
> 

Reply via email to