archive-org.com » ORG » K » KERNELNOMICON.ORG

Total: 311

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Update on ioquake/ARM for FreeBSD: controls support added | FreeBSD developer's notebook
    Pi alas without sound It should run out of the box on normal console Make sure you have moused running or specify mouse device by setting Q MOUSE DEV environment variable e g env Q MOUSE DEV dev ums0 ioquake3 arm set s initsound 0 In Uncategorized gonzo Posts Website Audio on Raspberry Pi Qt5 for FreeBSD Pi 3 responses to Update on ioquake ARM for FreeBSD controls support added Mick Beaver February 5 2015 at 7 28 pm Hi Do you use FreeBSD 10 or 11 on your Raspberry Pi Reply gonzo February 5 2015 at 7 29 pm FreeBSD 11 Reply Trackbacks and Pingbacks RaspberryPi FreeBSD and ioquake3 FreeBSD developer s notebook January 13 2015 support for keyboard mouse has been added After New Year I got back to hacking the VCHIQ stuff thanks to adrian for Leave a Reply to gonzo Cancel reply Name Email Website Comment Text formatting is available via select HTML a href title abbr title acronym title b blockquote cite cite code del datetime em i q cite strike strong Recent Posts Controlling AC power using GPIO i MX6 IPU and HDMI drivers RIoTboard support FreeBSD on RPi 2 progress Official 7 Raspberry

    Original URL path: http://kernelnomicon.org/?p=455&replytocom=18939 (2016-02-01)
    Open archived version from archive


  • State of FreeBSD/MIPS emulation | FreeBSD developer's notebook
    can be used with both emulators qemu provides more options in this area but they re out of scope of this article I created four images for my tests disk img disk64 img diskel img and disk64el img 32 bit big endian 64 bit big endian 32 bit little endian 64 bit big endian The process looks somewhat like this script bin sh set e export TARGET mips export TARGET ARCH mips export SRCCONF dev null export SRCROOT src FreeBSD head export MAKEOBJDIRPREFIX src FreeBSD obj head export DESTDIR src FreeBSD tftproot TARGET ARCH make C SRCROOT buildworld sudo E mkdir p src FreeBSD tftproot TARGET ARCH sudo E make C SRCROOT KERNCONF KERNCONF DESTDIR DESTDIR installworld sudo E make C SRCROOT KERNCONF KERNCONF DESTDIR DESTDIR distribution modify etc fstab and etc rc conf in DESTDIR Create 512Mb disk image with big endian UFS For TARGET ARCH set to mipsel or mips64el use B le switch sudo E makefs M 538968064 B be src FreeBSD disk img DESTDIR Change TARGET ARCH and disk image name accordingly for mipsel mip64 mips64el targets QEMU As of QEMU 1 6 0 there is one known problem with it NIC emulation does not work in big endian mode See this patch for fix and details Also amount of memory limited to 128Mb Use MALTA kernel config for 32 bit mode and MALTA64 for 64 bit mode Command lines for various modes byte orders are qemu system mips M malta kernel path to mips mips MALTA kernel hda src FreeBSD disk img nographic qemu system mips64 M malta kernel path to mips mips64 MALTA64 kernel hda src FreeBSD disk64 img nographic qemu system mipsel M malta kernel path to mips mipsel MALTA kernel hda src FreeBSD diskel img nographic qemu system mips64el M malta kernel path to mips mips64el MALTA64 kernel hda src FreeBSD disk64el img nographic GXemul GXemul requires two patches for proper FreeBSD MIPS emulation First one implements rdhwr op for reg 29 required by TLS support The second one fixes UDP packet checksum calculation and required for proper functioning of emulated DHCP server Both of these patches have been committed upstream but there were no GXemul release after that so they re not available as part of emulators gxemul port As with QEMU kernel configs for MALTA are MALTA and MALTA64 And since only little endian byte order is supported command lines for this emulation mode are gxemul e malta C 4Kc d home gonzo FreeBSD diskel img path to mips mipsel MALTA kernel gxemul e malta d home gonzo FreeBSD disk64el img path to mips mips64el MALTA64 kernel For oldtestmips emulation mode is other way around only big endian And to make things more complicated it s GXEMUL kernel config for 64 bit and GXEMUL32 for 32 bit So here you are gxemul M 256 E oldtestmips d home gonzo FreeBSD disk64 img path to mips mips64 GXEMUL kernel gxemul M 256 C 4Kc E oldtestmips d home gonzo FreeBSD disk

    Original URL path: http://kernelnomicon.org/?p=401&replytocom=5310 (2016-02-01)
    Open archived version from archive

  • USB driver for FreeBSD/Beaglebone | FreeBSD developer's notebook
    Here is the new one beaglebone usb 20130626 diff I adopted it to latest HEAD fixed numerous bugs added support for SPLIT transactions and USB suspend resume signalling There is some cleaning up to do but unless something major comes up the plan is to commit it over next few days In Uncategorized gonzo Posts Website Raspberry Pi console Update on FreeBSD armv6 in One response to USB driver for FreeBSD Beaglebone Jay October 19 2013 at 7 40 pm Is FreeBSD able to be a USB mass storage gadget for your u boot RPi build I ve been unable to get the RPi to see a linux based Debian Beaglbone Black device as valid usb device When I issue usb start from u boot I get scanning bus for storage devices Error condition at line 562 ACK DATATGLERR with the g mass storage gadget Reply Leave a Reply to Jay Cancel reply Name Email Website Comment Text formatting is available via select HTML a href title abbr title acronym title b blockquote cite cite code del datetime em i q cite strike strong Recent Posts Controlling AC power using GPIO i MX6 IPU and HDMI drivers RIoTboard support FreeBSD

    Original URL path: http://kernelnomicon.org/?p=393&replytocom=5338 (2016-02-01)
    Open archived version from archive

  • FreeBSD developer's notebook | All Things FreeBSD
    of syscons It s old it s inflexible and it s mostly i386 centric Just until recently most of our so called embedded targets were headless so there were no pressure from this side to reorganize things My experience with coding two framebuffer drivers or trying to add PS 2 keyboard support on non i386 platform was not very pleasant It s messy and there is a lot of code duplication newsyscons project may be the way to go I haven t looked at it yet We just need someone tm to finish it and get into the tree Fix these two issues should make bring up process easier It leaves us with question of GPU support But it s different story for different post Happy New Year everybody In ARM FreeBSD Broadcom switches vchiq to dual license December 17 2012 2 Comments vchiq kernel driver for interfacing ARM with VideoCore is now dual licensed BSD GPL References https github com raspberrypi firmware issues 40 https github com raspberrypi linux commit d21d26ebd773ab87888351220739b43a9733233a In Uncategorized FreeBSD armv6 in QEMU December 5 2012 7 Comments QEMU 1 5 users see this update First take at getting FreeBSD armv6 running in simulators Simulators are great for tracking down nasty bugs and building packages So here is support for Versatile Platform Board machine supported by QEMU Most likely this code will not run on real VersatilePB because I do not have this hardware and timing code or lack of it on CLCD driver and Keyboard Mouse interface PL050 is pure guesswork Back to gory details Build You ll need this patch and this script Apply patch use script to get freebsd versatilepb flash As for userland it s fully compatible with Raspberry Pi s userland or Pandaboard s one So you can use latest RPi SD card image As for now it s freebsd pi r243778 img gz 124Mb Run QEMU I believe that at least QEMU 1 2 0 is required It s still 1 1 1 in ports due to some blockers that prevent upgrade to 1 3 0 This patch updates port to 1 3 0 and it worked for me Also I tested images with QEMU on windows and OS X works fine qemu system arm M versatilepb m 128M kernel freebsd versatilepb flash cpu arm1176 hda freebsd pi r243778 img Caveats Serial console is off by default use graphics console If you need headless mode rebuild image with device sc and related options disabled or use prebuilt flash image for headless mode root device name is hardcoded so if you re using some other image or building your own be sure that s ROOTDEV actually match real root Memory size is hardcoded 128M For getting this information run time we ll need uboot and ubldr added to boot chain Prebuilt kernels freebsd versatilepb flash 4Mb freebsd versatilepb headless flash 4Mb MD5 freebsd versatilepb headless flash 24a41807bf94c5fec0565adcfef48678 MD5 freebsd versatilepb flash 085dedae67895ac1d1a7c04c7cda8468 In ARM Cross compilation hiccups December 1 2012

    Original URL path: http://kernelnomicon.org/?paged=4 (2016-02-01)
    Open archived version from archive

  • FreeBSD developer's notebook | Author Archives
    syncing with latest upstream code and fixing some stupid bugs in my codebase So I partially merged things back spent some time on fixing more bugs introduced by yours truly merged userland bits from latest Broadcom s bits and fixing some bugs introduced by them And as a result VCHIQ got stable enough to run ioquake3d on raspberry pi Well you can t play it because there is no sound and no mouse support and keyboard support is severely crippled but you can navigate menus and watch demoes Here is short summary of how to get it running Get latest HEAD that includes r276794 Get latest crochet freebsd Create configuration file for RasspberryPi make sure that it s configured for 2Gb SD card and has VideoCore enabled i e it contains option ImageSize 1950mb for 2 Gigabyte card option VideoCore Build RPi image and flash to SD card mount FreeBSD partition e g mount dev mmcsd0s2a mnt Copy Quake3 PAK files to baseq3 directory on SD card Download http people freebsd org gonzo arm ioquake3 arm tar gz and copy so files to baseq3 and ioqake3 arm to usr bin on SD card Unmount FreeBSD partition and mount boot partiotion e g mount msdosfs dev mmcsd0s1 mnt Edit config txt and change gpu mem value to 64 Unmount SD card and boot it on your Pi Load vchiq module kldload vchiq Start Quake3 ioqake3 arm set s initsound 0 Keyboard support is really broken TAB and ENTER works so you can navigate menus But that s pretty much it ioquake3 codebase with my minor changes located here https github com gonzoua quake3 I provide pre compiled binaries because for some reason ioquake3 built with xdev tools crash in qsort libc incompatibilities so I use make buildenv to build it And here is photo of demo in action there are RaspberryPi and ZedBoard on it too yay In ARM Raspberry Pi freebsd raspberry pi vchiq State of FreeBSD MIPS emulation September 4 2013 1 Comment A week ago Adrian Chadd asked me to take a loot at FreeBSD MIPS emulation So last week I ve been busy tidying up stuff in that department and looking up bits of information on various emulators This morning I finally committed last changeset so now is the time to write up summary Emulators There are two widely used MIPS emulatoes that FreeBSD supports QEMU and GXemul Both of them support numerous MIPS devices but we re interested in only two MALTA is more or less standard for MIPS emulation and supported by both emulators QEMU supports 32 and 64 bit variants with both big and little endian byte order So four modes in total Also for MALTA machine QEMU provides PCNet NIC emulation GXemul supports 32 and 64 bit modes of MALTA but only for little endian byte order Big endian byte order is not supported due to incomplete PCI controller implementation No NIC support for MALTA machine Also Gxemul provides so called oldtestmips emulation

    Original URL path: http://kernelnomicon.org/?author=1&paged=2 (2016-02-01)
    Open archived version from archive

  • FreeBSD developer's notebook | Author Archives
    you might need to initialize USB first U Boot usb start Re start USB USB0 Core Release 2 80a scanning bus 0 for devices 3 USB Device s found scanning usb for storage devices 0 Storage Device s found scanning usb for ethernet devices 1 Ethernet Device s found At this point you can either get network settings via DHCP or set them manually Manual control over network is performed by setting U Boot environment variables U Boot setenv ipaddr 192 168 10 21 U Boot setenv netmask 255 255 255 0 U Boot setenv gatewayip 192 168 10 1 DHCP also provides information about TFTP server and boot file we can set them manually too U Boot setenv bootfile kernel U Boot setenv serverip 192 168 10 1 And now load it U Boot tftpboot 0x8000 and boot U Boot bootelf 0x8000 By default tftpboot and bootelf would use loadaddr env variable if it s set so you can combine last two commands to U Boot setenv loadaddr 0x8000 U Boot tftpboot U Boot bootelf With DHCP everything above is combined into three commands U Boot setenv loadaddr 0x8000 U Boot dhcp U Boot bootelf If you re booting ELF loadaddr can be any valid address because bootelf will relocate kernel to proper location Valid range for addresses depends on the board in use With kernel bin though you have to specify specific value as a loadaddr Usually it s KERNPHYSADDR option in kernel config file for ARM and KERNLOADADDR value for MIPS U Boot commands sequence would look like U Boot setenv bootfile kernel bin U Boot setenv loadaddr 0x00100000 U Boot dhcp U Boot go 0x00100000 uImage ubldr This is basic stuff I ve been using for several years in my development environment There are more options though u boot application images and bootm command and ubldr Former is well documented on Internet and about latter I ll post some information soon In FreeBSD arm netboot Netbooting ARM MIPS devices server setup February 14 2013 5 Comments I was asked to share details about my root over NFS setup so here they are I decided to split how to in two posts server kernel part and u boot part Usual components in the setup are DHCP server TFTP server NFS server NAT optional DHCP server I use net isc dhcp42 server as a server Sample dhcpd conf option root opts code 130 string NFS mount options log facility local7 subnet 192 168 10 0 netmask 255 255 255 0 server name cinderella bluezbox com server identifier 192 168 10 1 option subnet mask 255 255 255 0 option broadcast address 192 168 10 255 option domain name servers 8 8 8 8 option domain name bluezbox com next server 192 168 10 1 option routers 192 168 10 1 group host pandaboard hardware ethernet 0E 60 33 B1 46 01 fixed address 192 168 10 90 filename kernel PANDA bin option root path src FreeBSD nfs armv6 option root opts nolockd host rpi hardware ethernet b8 27 eb f6 08 83 fixed address 192 168 10 91 filename ubldr option root path src FreeBSD nfs rpi option root opts nolockd Config is pretty self explanatory I use google s 8 8 8 8 nameserver but you can change it to your very own DNS server Difference between various filename will be explained later dhcpd should be enabled in rc conf 5 dhcpd enable YES TFTP server TFTP server provides access to all files described in filename options so it s better to keep them together By default it s tftpboot directory but I have whole drive dedicated to FreeBSD development environment and mounted under src FreeBSD mountpoint So I keep everything there and my TFTP server root is src FreeBSD tftpboot TFTP server is standard FreeBSD s one and config line in inetd conf 8 looks like tftp dgram udp wait root usr libexec tftpd tftpd l s src FreeBSD tftpboot inted should be enabled in rc conf 5 inetd enable YES NFS Server NFS server is not just one daemon but several services combined So rc conf 5 part of config looks like this rpcbind enable YES rpc statd enable YES rpc lockd enable YES nfs server enable YES mountd enable YES Filesystems that are exported via NFS listed in exports 5 Mine contains following Mind mount points obj and nfs are different usr ports maproot 0 network 192 168 10 0 16 src FreeBSD head src FreeBSD nfs rpi src FreeBSD nfs armv6 src FreeBSD nfs am335x maproot 0 network 192 168 10 0 16 Note that you can join several directories into one line only if they belong to the same mount point NAT If you re planning on building ports on the device you ll need internet access on it All my devices are restricted to one LAN with laptop acting as a gateway I use pf 4 for NATing Config etc pf conf 5 ext if em0 rede 192 168 0 0 16 nat on ext if from rede to any ext if and rc conf 5 gateway enable YES pf enable YES pf rules etc pf conf pf flags Kernel config FreeBSD kernel should be properly configured in order to be suitable for mounting root over NFS options NFSCL options NFSCLIENT NFS v3 options NFS ROOT options BOOTP NFSROOT options BOOTP COMPAT options BOOTP options BOOTP NFSV3 options BOOTP WIRED TO ue0 BOOTP WIRED TO value is SoC specific If you do not have full control over your DHCP server e g it s cable modem and can t specify root path root opts you still can hardcode root location by removing BOOTP NFSROOT and adding options ROOTDEVNAME nfs 192 168 10 src FreeBSD nfs rpi Installation Depending on your boot sequence installation consists of one or two steps Normal system installation e g sudo E make TARGET ARCH armv6 DESTDIR src FreeBSD nfs rpi DDB FROM SRC installworld sudo E

    Original URL path: http://kernelnomicon.org/?author=1%2F&paged=3 (2016-02-01)
    Open archived version from archive

  • Netbooting ARM/MIPS devices: ubldr | FreeBSD developer's notebook
    U Boot via syscall like API that turns boot loader into quasi OS Some bits of information on this topic can be found in api README file in U Boot sources here ubldr uses U Boot API to enumerate devices that might be used as a boot source block e g SD card or network For network device it will use BOOTP to try to obtain network boot data and then mount directory over NFS For block device it will inspect partition table and try to find suitable partition to use as a root device Once root is mounted ubldr will perform standard loader 8 magic get loader related config from boot directory and act on it There is no dedicated top level build target for ubldr so getting it compiled is a little bit tricky You need to perform whole buildworld cycle before compiling ubldr Build script would look something like this export SRCROOT src FreeBSD head export MAKESYSPATH SRCROOT share mk export TARGET arm export TARGET ARCH armv6 export MAKEOBJDIRPREFIX src FreeBSD obj make C SRCROOT buildworld buildenv make C SRCROOT buildenvvars eval buildenv make C SRCROOT sys boot clean eval buildenv make C SRCROOT sys boot obj eval buildenv make C SRCROOT sys boot UBLDR LOADADDR 0x2000000 all Meaning of UBLDR LOADADDR is the same as KERNPHYSADDR in previous post ubldr is ELF executable and can be used with bootelf command Typical boot log is something like this Starting application at 0x02000054 Consoles U Boot console Compatible API signature found 7b662a8 Number of U Boot devices 2 FreeBSD armv6 U Boot loader Revision 1 2 gonzo bsdbox Fri Apr 19 18 52 33 PDT 2013 DRAM 128MB Device disk Device net boot kernel kernel data 0x3ae624 0x2128c syms 0x4 0x71ca0 0x4 0x44075 Hit Enter to boot immediately

    Original URL path: http://kernelnomicon.org/?p=351&replytocom=5688 (2016-02-01)
    Open archived version from archive

  • Netbooting ARM/MIPS devices: ubldr | FreeBSD developer's notebook
    U Boot via syscall like API that turns boot loader into quasi OS Some bits of information on this topic can be found in api README file in U Boot sources here ubldr uses U Boot API to enumerate devices that might be used as a boot source block e g SD card or network For network device it will use BOOTP to try to obtain network boot data and then mount directory over NFS For block device it will inspect partition table and try to find suitable partition to use as a root device Once root is mounted ubldr will perform standard loader 8 magic get loader related config from boot directory and act on it There is no dedicated top level build target for ubldr so getting it compiled is a little bit tricky You need to perform whole buildworld cycle before compiling ubldr Build script would look something like this export SRCROOT src FreeBSD head export MAKESYSPATH SRCROOT share mk export TARGET arm export TARGET ARCH armv6 export MAKEOBJDIRPREFIX src FreeBSD obj make C SRCROOT buildworld buildenv make C SRCROOT buildenvvars eval buildenv make C SRCROOT sys boot clean eval buildenv make C SRCROOT sys boot obj eval buildenv make C SRCROOT sys boot UBLDR LOADADDR 0x2000000 all Meaning of UBLDR LOADADDR is the same as KERNPHYSADDR in previous post ubldr is ELF executable and can be used with bootelf command Typical boot log is something like this Starting application at 0x02000054 Consoles U Boot console Compatible API signature found 7b662a8 Number of U Boot devices 2 FreeBSD armv6 U Boot loader Revision 1 2 gonzo bsdbox Fri Apr 19 18 52 33 PDT 2013 DRAM 128MB Device disk Device net boot kernel kernel data 0x3ae624 0x2128c syms 0x4 0x71ca0 0x4 0x44075 Hit Enter to boot immediately

    Original URL path: http://kernelnomicon.org/?p=351&preview=true&replytocom=5688 (2016-02-01)
    Open archived version from archive