.\" $NetBSD: hardware,v 1.5 2000/10/27 00:42:57 mbw Exp $ . Currently, .Nx*M requires the use of .Pa Open Firmware (OF) to boot. Open Firmware is a command environment using the FORTH language which the .Nx kernel uses to gether information about your system, and to control some of your devices. This means that PowerMacs and clones that lack OF cannot boot .Nx on the \*M platform. Most machines introduced by Apple and the clone-makers after August 17, 1995 have OF and are supported. .Pp Apple made several revisions of this OF environment, and each has various quirks and problems that we must work around. The single hardest step of installing .Nx*M is to set up OF properly. OF versions 1.x and 2.0.x act similarly and the same set of instructions applies to them. OF version 2.4 is slightly different with regards to booting. OF version 3 is altogether different. .Pp At present, .Nx*M does not support the PPC 601 microprocessor, which means that the PowerMacintosh 7200 and 7500 models are not supported. The PowerMacintosh 7500 may be upgraded to a PPC 604, G3, or G4 microprocessor via a daughtercard replacement, in which case .Nx will run on this system. .Pp The minimal configuration requires 8 MB of RAM and ~80 MB of disk space. To install the entire system requires much more disk space, and to run X or compile the system, more RAM is recommended, as .Nx with 8 MB of RAM is very slow. Note that until you have around 16 MB of RAM, getting more RAM is more important than getting a faster CPU. . .Ss2 Supported models Find your model from the list below and take note of its Open Firmware version: .(tag xcc .It Ar OF 1.0.5 or 2.0.x .(bullet -compact Apple PowerBook (2400, 3400, G3, and G3 Series) .It Apple PowerMacintosh/Performa (4400, 54xx, 5500, 6300/160, 6360, 6400, and 6500) .It Apple PowerMacintosh (7300, 7500 (with CPU upgrade), 7600, 8500, 8600, 9500, and 9600) .It Apple PowerMacintosh (G3 ``Beige'' models with ATI RageII+: Desktop, Mini Tower, and All-in-One) .It APS Tech (M*Power 604e/200) .It Motorola StarMax (3000, 4000, 5000, and 5500) .It Power Computing (PowerBase, PowerCenter, PowerCenter Pro, PowerCurve, PowerTower, PowerTower Pro, and PowerWave) .It UMAX (J700, S900) .It UMAX (Apus 2000, Apus 3000, C500, and C600) .bullet) .It Ar OF 1.1.22 .(bullet -compact Apple Network Server (500 and 700) .bullet) .It Ar OF 2.4 .(bullet -compact Apple PowerMacintosh (G3 ``Beige'' models with ATI Rage Pro: Desktop, Mini Tower, and All-in-One) .bullet) .It Ar OF 3 .(bullet -compact Apple iMac (Bondi Blue (Rev A and Rev B, 233 MHz), 5 Flavors (Rev C and Rev D, 266 MHz and 333 MHz), and Slot Loading) .It Apple PowerBook (G3 Series (bronze keyboard)) .It Apple PowerMacintosh (G3 (Blue and White), G4 (PCI), G4 (AGP), and G4 Cube) .bullet) .tag) . .Ss2 Models not supported by NetBSD/macppc .(bullet -compact -offset indent Systems with Open Firmware, but using a PPC 601 microprocessor (PowerMacintosh 7200 and 7500 (without CPU upgrade)) .It Systems with a PowerPC microprocessor, but lacking Open Firmware .(bullet -compact Apple PowerBook (1400, 2300, and 5300) .It Apple PowerMacintosh/Performa (52xx, 53xx, 62xx, and 63xx (except 6300/160 and 6360 which are supported)) .It Apple PowerMacintosh/Performa (61xx, 71xx, and 81xx) .It PowerComputing (Power 100 and Power 120) .bullet) .It Systems with broken Open Firmware (Twentieth Anniversary Macintosh) .It Systems with a Motorola 68k microprocessor (these systems are supported by NetBSD/mac68k) .It Systems upgraded from any of the above (unless the motherboard is replaced as part of the upgrade) .It Systems released during the year 2000 (future releases of .Nx*M will support these systems) .bullet) . .Ss2 Supported devices .(Note While the .Nx kernel may support the various Cardbus, PCI, PCMCIA, and USB devices you may have, Open Firmware does .Em not unless it has a specific Open Firmware ROM. This means you cannot boot from these devices. Some Adaptec SCSI controllers have bootable OF ROMs. .Note) .Pp .(bullet -offset indent Ethernet .(bullet -compact On-board 79C950-based MACE Ethernet interface (mc0) .It On-board bmac Ethernet interface (bm0) .It On-board gmac Ethernet interface (gm0) .It Apple PCI Ethernet Card (option for Apple Network Server) (tlp) .It Asante Mac 10/100 PCI Rev A, part number 09-00169-01 (de) .It Farallon Fast EtherTX 10/100, part number PN996L-TX (de) .It SMC Etherpower II (9432TX) (epic) .It SMC 83c170 (epic) .It 3Com 3c905 (ex) .It Intel EtherExpress PRO/10+ PCI LAN Adapter (fxp) .It RealTek 8029 Ethernet (ne) .It VIA Technologies VT86C926 (ne) .It RealTek 8139 (rtk) .It Lite-On PNIC (tlp) .It D-Link DFE-530TX (vr) .It Many other PCI and Cardbus Ethernet interfaces (such as Tulip-compatable (de and tlp), 3Com (ep), SMC (epic), Intel (fxp), NE2000-compatable (ne), and RealTek (rtk)) .It Many USB Ethernet interfaces (aue, cue, and kue) .bullet) .It SCSI .(bullet -compact On-board NCR 53c94 SCSI controller (esp) .It On-board MESH SCSI controller (mesh) .It Adaptec PCI controllers 291x, 2920, 2930C, 294x, 295x, 39xx, 19160, 29160 and AIC-78xx (ahc) .It AdvanSys 1200[A,B], 9xx[U,UA] SCSI controller (adv) .It AMD 53c974 (pcscp) .It NCR/Symbios 53C8xx (ncr or siop) .It Many other PCI SCSI controllers should work, but no one has tried them .It Most SCSI disk/tape/CD-ROM devices should work .bullet) .It IDE .(bullet -compact On-board IDE controlers .It Many PCI IDE controllers should work, although no one has tried them .It Most IDE disk/CD-ROM/ATAPI devices should work .bullet) .It Input devices .(bullet -compact Most ADB keyboards, mice, trackballs, and trackpads .It Most USB keyboards, mice, trackballs, and trackpads .It Most PS/2 keyboards, mice, and trackballs (middle button on 3-button mice may not work) .bullet) .It Video .(bullet -compact On-board video on most models (ofb) .(Note Several models have been reported to not work with .Nx if the on-board video is in use, such as the Performa 54xx, 6360, 6400, PowerMacintosh 9500/150, 9500/180, 9500/200, PowerComputing PowerTower, and UMAX C600 and Apus 3000 .Note) .Pp .It PCI frame buffers which have Open Firmware support (ATI, IMS, and Matrox have several models which work) .bullet) .It Serial ports .(bullet -compact On-board serial ports (the modem and printer ports) (ttya and ttyb) .(Note The on-board serial ports can be used for console, although many users have reported problems trying to run ppp or other high speed serial applications .Note) .Pp .It Some USB, PCI, and Cardbus serial ports should work, but no one has tried them .bullet) .It USB devices .(bullet -compact Most MI USB devices should work (such as disks, printers, input devices, and ethernet interfaces) .Lk http://www.netbsd.org/Hardware/usb.html .bullet) .It PCMCIA and Cardbus cards .(bullet -compact Most MI PCMCIA and Cardbus cards should work, although very few have been tested with .Nx*M .Lk http://www.netbsd.org/Hardware/cardbus.html .Lk http://www.netbsd.org/Hardware/pcmcia.html .bullet) .It PCI cards .(bullet -compact Most MI PCI cards should work, although very few have been tested with .Nx*M .Lk http://www.netbsd.org/Hardware/pci.html .bullet) .bullet) . .Ss2 Unsupported devices .(bullet -offset indent On-board audio .It Floppy disk .(Note Though .Nx*M can boot from a floppy, there is no kernel support yet .Note) .It FireWire (IEEE 1394) .It Advanced power management (cannot put system to `sleep') .It Multiple processors .(Note Although .Nx*M can boot with more than one processor present, it will not use the additional CPUs .Note) .It AirPort .It On-board video capture .bullet) . .Ss2 Supported boot devices and media . Each version of Open Firmware supports different devices and media that you may boot from. .Pp Go to the .Nx*M Model Support webpage and look up your system. Take note of the comments about your model and keep these in mind during the rest of this installation procedure. .Lk http://www.netbsd.org/Ports/macppc/models.html .Pp Skip forward to the section appropriate for your version of Open Firmware .br .Sx Bootable media in Open Firmware 1.0.5 or 2.0.x .br .Sx Bootable media in Open Firmware 1.1.22 .br .Sx Bootable media in Open Firmware 2.4 .br .Sx Bootable media in Open Firmware 3 . .Ss2 Bootable media in Open Firmware 1.0.5 or 2.0.x . .(enum .Em Discussion of what's available .Pp There are four methods of opening a file in OF 1.0.5 and 2.0.x: from an MS-DOS filesystem, over ethernet, from an ISO 9660 (CD-ROM) filesystem, or from `partition zero'. In all cases except `partition zero', your system must open the .Pa `ofwboot.xcf' bootloader to load the kernel. The `partition zero' method loads a primary bootloader called .Pa `bootxx' which then loads an .Pa `ofwboot' bootloader, which then loads the kernel. The .Pa `ofwboot' bootloader is functionally identical to .Pa `ofwboot.xcf'. .Pp We can almost immediately discount use of the MS-DOS filesystem, as neither the .Pa ofwboot.xcf bootloader or the kernel can read files directly from it. .Pp As for ethernet, you can run your entire system diskless or netboot only the files necessary to boot (i.e. the bootloader and the installation kernel), but you must have root access on another .Ux machine on your subnet. It seems some of the OF 1.0.5 machines do not retrieve the BOOTP information correctly. These machines cannot netboot. .Pp If you do not have access to a DHCP server running NFS, then you must load .Pa ofwboot[.xcf] either from an ISO 9660 (CD-ROM) disk or from `partition zero'. .Pp Once .Pa ofwboot[.xcf] has loaded, it can open a kernel from only three sources: over ethernet (NFS), from a .Nx filesystem (FFS), or from a CD-ROM filesystem (ISO 9660). .Pp The boot floppy image provided with the distribution sets has a `partition zero' bootloader and a .Nx filesystem with an installation kernel. .Pp When you are first installing .Nx you will not have any .Nx filesystems on your machine, unless you use the boot floppy. This leaves one option: ISO 9660. Keep in mind that OF 1.0.5 and 2.0.x machines will .Em not boot from the ISO 9660 filesystem if you create a hybrid HFS/ISO format CD-R. Make sure that it the CD .Em only has ISO 9660 data and does not have an Apple Partition Map. .Pp If you will be running your system diskless (i.e. entirely over NFS, not using any local hard drives), then you do not need to run the installer although you may still do so. .Pp You must run the installer to place .Nx on a hard drive on your \*M system. .It .Em The three common installation techniques (and one not) .Pp .(bullet -compact .Em Create the boot floppy. Use some tool to write the boot floppy image to a floppy disk, and boot from that. The primary bootloader (in `partition zero') will load .Pa `ofwboot' which will load the installation kernel. Alternatively, you may .Pp .It .Em Create an ISO 9660 CD-ROM. Place .Pa ofwboot.xcf and the installation kernel at the top level of the CD. You may, while you're at it, also place the .Nx \*V distribution sets on the disk. You will have OF load .Pa ofwboot.xcf from the disk, and it will then load the installation kernel. If you do not have access to a CD-R burner, then you must .Pp .It .Em Boot over the ethernet. You will need to set up the DHCP daemon in BOOTP compatable mode, the TFTP daemon, and the NFS daemons on your netboot server. You will tell OF to boot over ethernet, and it will send a BOOTP request, which will tell OF what your system's IP address is, and where its bootloader can be downloaded via TFTP. Once OF has downloaded the bootloader via TFTP, it will then load the installation kernel via an NFS connection. .Pp .It .Em If all else fails, write the floppy disk image to a bootable drive. You will need to find a spare bootable drive (i.e. SCSI or IDE). You'll use some tool to write the floppy disk image to your spare drive, and boot from that drive. The floppy image has a `partition zero' bootloader which ultimately loads the installation kernel. .bullet) .It .Em Partitioning the drive NetBSD will be installed on .Pp You have two options. You may use the .Nx installer to partition your drive and make it bootable (with a `partition zero' bootloader), in which case you cannot share this drive with MacOS (i.e. have any HFS partitions on it). Alternatively, you may share this drive with MacOS, in which case the drive will not be bootable. You will need to load .Pa `ofwboot.xcf' from some other media (such as over the network, from a floppy, or from a CD-ROM). .Pp Unfortunately, the partitioning tools for .Nx are not advanced enough to create an HFS(+) filesystem. Therefore, if you wish to share this drive with MacOS, you will need to use the MacOS Drive Setup tool (versions 1.9.1 and later are known to work) to divide the hard drive you will be using for .Nx into the following partitions. .(bullet -compact .Em HFS(+) must be large enough to hold the bootloader, over 100 KB. .It .Em A/UX Root; must be at least 20 MB. Alternatively, you may decide to use one partition for your entire .Nx installation, in which case it should be at least 200 MB. .It .Em A/UX Swap; any size. The recommenation is 1.5 times your RAM, although this is not strictly necessary for machines with a lot of RAM. .It .Em A/UX User, A/UX Free1, A/UX Free2, A/UX Free3; use these for any additional partitions you may want to use under .Nx .bullet) .enum) . .Ss2 Bootable media in Open Firmware 1.1.22 . Users have reported that the .Nx kernel does not work well with the on-board MACE-based ethernet (the one that requires an Apple AAUI dongle). If your system does not have the Apple PCI Ethernet Card, you may need to purchase and install another ethernet card in your Apple Network Server. .Pp .(enum .Em Discussion of what's available .Pp There are four methods of opening a file in OF 1.1.22: from an MS-DOS filesystem, over ethernet, from an ISO 9660 (CD-ROM) filesystem, or from `partition zero'. In all cases except `partition zero', your system must open the .Pa `ofwboot.xcf' bootloader to load the kernel. The `partition zero' method loads a primary bootloader called .Pa `bootxx' which then loads an .Pa `ofwboot' bootloader, which then loads the kernel. The .Pa `ofwboot' bootloader is functionally identical to .Pa `ofwboot.xcf'. .Pp We can almost immediately discount use of the MS-DOS filesystem, as neither the .Pa ofwboot.xcf bootloader or the kernel can read files directly from it. .Pp As for ethernet, you can run your entire system diskless or netboot only the files necessary to boot (i.e. the bootloader and the installation kernel), but you must have root access on another .Ux machine on your subnet. .Pp If you do not have access to a DHCP server running NFS, then you must load .Pa ofwboot[.xcf] either from an ISO 9660 (CD-ROM) disk or from `partition zero'. .Pp Once .Pa ofwboot[.xcf] has loaded, it can open a kernel from only three sources: over ethernet (NFS), from a .Nx filesystem (FFS), or from a CD-ROM filesystem (ISO 9660). .Pp The boot floppy image provided with the distribution sets has a `partition zero' bootloader and a .Nx filesystem with an installation kernel. .Pp When you are first installing .Nx you will not have any .Nx filesystems on your machine, unless you use the boot floppy. This leaves one option: ISO 9660. .Pp If you will be running your system diskless (i.e. entirely over NFS, not using any local hard drives), then you do not need to run the installer although you may still do so. .Pp You must run the installer to place .Nx on a hard drive on your \*M system. .It .Em The three common installation techniques (and one not) .Pp .(bullet -compact .Em Create the boot floppy. Use some tool to write the boot floppy image to a floppy disk, and boot from that. The primary bootloader (in `partition zero') will load .Pa `ofwboot' which will load the installation kernel. Alternatively, you may .Pp .It .Em Create an ISO 9660 CD-ROM. Place .Pa ofwboot.xcf and the installation kernel at the top level of the CD. You may, while you're at it, also place the .Nx \*V distribution sets on the disk. You will have OF load .Pa ofwboot.xcf from the disk, and it will then load the installation kernel. If you do not have access to a CD-R burner, then you must .Pp .It .Em Boot over the ethernet. You will need to set up the DHCP daemon in BOOTP compatable mode, the TFTP daemon, and the NFS daemons on your netboot server. You will tell OF to boot over ethernet, and it will send a BOOTP request, which will tell OF what your system's IP address is, and where its bootloader can be downloaded via TFTP. Once OF has downloaded the bootloader via TFTP, it will then load the installation kernel via an NFS connection. .Pp .It .Em If all else fails, write the floppy disk image to a bootable drive. You will need to find a spare bootable drive (i.e. SCSI or IDE). You'll use some tool to write the floppy disk image to your spare drive, and boot from that drive. The floppy image has a `partition zero' bootloader which ultimately loads the installation kernel. .bullet) .enum) . .Ss2 Bootable media in Open Firmware 2.4 . .(enum .Em Discussion of what's available .Pp There are five methods of opening a file in OF 2.4: from an MS-DOS filesystem, from an HFS or HFS+ filesystem, over ethernet, from an ISO 9660 (CD-ROM) filesystem, or from `partition zero'. In all cases except `partition zero', your system must open the .Pa `ofwboot.xcf' bootloader to load the kernel. The `partition zero' method loads a primary bootloader called .Pa `bootxx' which then loads an .Pa `ofwboot' bootloader, which then loads the kernel. The .Pa `ofwboot' bootloader is functionally identical to .Pa `ofwboot.xcf'. .Pp Unfortunately, the Open Firmware 2.4 driver for floppy disks seems broken. .Pp We can almost immediately discount use of the MS-DOS filesystem, as neither the .Pa ofwboot.xcf bootloader or the kernel can read files directly from it. .Pp We can also discount use of HFS(+). Even though you could load .Pa `ofwboot.xcf' from an HFS(+) partition, you would not be able to load the kernel from it. .Pp As for ethernet, you can run your entire system diskless or netboot only the files necessary to boot (i.e. the bootloader and the installation kernel), but you must have root access on another .Ux machine on your subnet. .Pp If you do not have access to a DHCP server running NFS, then you must load .Pa ofwboot[.xcf] either from an ISO 9660 (CD-ROM) disk or from `partition zero'. .Pp Once .Pa ofwboot[.xcf] has loaded, it can open a kernel from only three sources: over ethernet (NFS), from a .Nx filesystem (FFS), or from a CD-ROM filesystem (ISO 9660). .Pp When you are first installing .Nx you will not have any .Nx filesystems on your machine. This leaves one option: ISO 9660. .Pp If you will be running your system diskless (i.e. entirely over NFS, not using any local hard drives), then you do not need to run the installer although you may still do so. .Pp You must run the installer to place .Nx on a hard drive on your \*M system. .It .Em The two common installation techniques (and one not) .Pp .(bullet -compact .Em Create an ISO 9660 CD-ROM. Place .Pa ofwboot.xcf and the installation kernel at the top level of the CD. You may, while you're at it, also place the .Nx \*V distribution sets on the disk. You will have OF load .Pa ofwboot.xcf from the disk, and it will then load the installation kernel. If you do not have access to a CD-R burner, then you must .Pp .It .Em Boot over the ethernet. You will need to set up the DHCP daemon in BOOTP compatable mode, the TFTP daemon, and the NFS daemons on your netboot server. You will tell OF to boot over ethernet, and it will send a BOOTP request, which will tell OF what your system's IP address is, and where its bootloader can be downloaded via TFTP. Once OF has downloaded the bootloader via TFTP, it will then load the installation kernel via an NFS connection. .Pp .It .Em If all else fails, write the floppy disk image to a bootable drive. You will need to find a spare bootable drive (i.e. SCSI or IDE). You'll use some tool to write the floppy disk image to your spare drive, and boot from that drive. The floppy image has a `partition zero' bootloader which ultimately loads the installation kernel. .bullet) .It .Em Partitioning the drive NetBSD will be installed on .Pp You have two options. You may use the .Nx installer to partition your drive and make it bootable (with a `partition zero' bootloader), in which case you cannot share this drive with MacOS (i.e. have any HFS partitions on it). Alternatively, you may share this drive with MacOS, in which case you must put .Pa `ofwboot.xcf' on an HFS(+) partition to make the drive bootable. .Pp Unfortunately, the partitioning tools for .Nx are not advanced enough to create an HFS(+) filesystem. Therefore, if you wish to share this drive with MacOS, you will need to use the MacOS Drive Setup tool (versions 1.9.1 and later are known to work) to divide the hard drive you will be using for .Nx into the following partitions. .(bullet -compact .Em HFS(+) must be large enough to hold the bootloader, over 100 KB. .It .Em A/UX Root; must be at least 20 MB. Alternatively, you may decide to use one partition for your entire .Nx installation, in which case it should be at least 200 MB. .It .Em A/UX Swap; any size. The recommenation is 1.5 times your RAM, although this is not strictly necessary for machines with a lot of RAM. .It .Em A/UX User, A/UX Free1, A/UX Free2, A/UX Free3; use these for any additional partitions you may want to use under .Nx .bullet) .enum) . .Ss2 Bootable media in Open Firmware 3 . .(enum .Em Discussion of what's available .Pp There are only four methods of opening a file in OF 3: from an MS-DOS filesystem, from a `whole partition', over ethernet, or from an HFS or HFS+ filesystem. OF 3 has a great advantage over earlier versions of OF, in that it can load the .Nx kernel directly (without using the .Pa ofwboot.xcf bootloader). Unfortunately, some kernels do not ``just work'', and you will need to load the bootloader to load the kernel. All further instructions will assume you need to open the bootloader to load the kernel, however feel free to experiment and load the kernel with the command you use to load the bootloader, bypassing a step. .Pp Unfortunately, .Nx*M does not yet support the `whole partition' method with OF 3 yet. .Pp We can almost immediately discount use of the MS-DOS filesystem, as neither the .Pa ofwboot.xcf bootloader or the kernel can read files directly from it. This leaves ethernet and HFS(+). .Pp As for ethernet, you can run your entire system diskless or netboot only the files necessary to boot (i.e. the bootloader and the installation kernel), but you must have root access on another .Ux machine on your subnet. .Pp If you do not have access to a DHCP server running NFS, then you must load .Pa ofwboot.xcf from an HFS(+) partition. .Pp Once .Pa ofwboot.xcf has loaded, it can open a kernel from only three sources: over ethernet (NFS), from a .Nx filesystem (FFS), or from a CD-ROM filesystem (ISO 9660). .Pp When you are first installing .Nx you will not have any .Nx filesystems on your machine. This leaves one option: ISO 9660. .Pp If you will be running your system diskless (i.e. entirely over NFS, not using any local hard drives), then you do not need to run the installer although you may still do so. .Pp You must run the installer to place .Nx on a hard drive on your \*M system. .It .Em The three common installation techniques .Pp .(bullet -compact .Em Load the installation kernel from an HFS(+) partition. Download the install kernel and place it at the top level of any partition. Get to the OF prompt. Boot the kernel and use it to install .Nx on your hard drive. If that fails, try to .Pp .It .Em Create a hybrid HFS/ISO CD-ROM. Place .Pa ofwboot.xcf and the installation kernel at the top level of the CD. Make sure that the bootloader is present on the HFS partition, and the kernel is on the ISO partition. You may, while you're at it, also place the .Nx \*V distribution sets on the ISO partition. You will have OF load .Pa ofwboot.xcf from the HFS partition, and it will load the installation kernel from the ISO partition. If you do not have access to a CD-R burner, then you must .Pp .It .Em Boot over the ethernet. You will need to set up the DHCP daemon, the TFTP daemon, and the NFS daemons on your netboot server. You will tell OF to boot over ethernet, and it will send a DHCP request, which will tell OF what your system's IP address is, and where its bootloader can be downloaded via TFTP. Once OF has downloaded the bootloader via TFTP, it will then load the installation kernel via an NFS connection. .bullet) .It .Em Partitioning the drive NetBSD will be installed on .Pp Unfortunately, the partitioning tools for .Nx are not advanced enough to create an HFS(+) filesystem. Therefore, you will need to use the MacOS Drive Setup tool (versions 1.9.1 and later are known to work) to divide the hard drive you will be using for .Nx into the following partitions. .(bullet -compact .Em HFS(+) must be large enough to hold the bootloader, over 100 KB. .It .Em A/UX Root; must be at least 20 MB. Alternatively, you may decide to use one partition for your entire .Nx installation, in which case it should be at least 200 MB. .It .Em A/UX Swap; any size. The recommenation is 1.5 times your RAM, although this is not strictly necessary for machines with a lot of RAM. .It .Em A/UX User, A/UX Free1, A/UX Free2, A/UX Free3; use these for any additional partitions you may want to use under .Nx .bullet) .enum)