From owner-freebsd-questions Sun Oct 3 1:46:56 1999 Delivered-To: freebsd-questions@freebsd.org Received: from gate.bull.se (bull.se [193.44.17.2]) by hub.freebsd.org (Postfix) with ESMTP id 2EC9514D8D for ; Sun, 3 Oct 1999 01:46:45 -0700 (PDT) (envelope-from mar@bull.se) Received: from bull.se (eq08.bull.se [129.181.241.108]) by gate.bull.se (8.9.3/8.9.3) with ESMTP id KAA05974; Sun, 3 Oct 1999 10:49:11 +0200 Received: from pcmarhem (kloker.bull.se [129.181.241.95]) by bull.se (AIX4.3/UCB 8.8.8/8.8.8) with SMTP id KAA06978; Sun, 3 Oct 1999 10:48:46 +0200 Reply-To: From: "mark rowlands" To: "FreeBSD-questions (E-mail)" Cc: Subject: pcmcia network card problems 3com and Xircom fail to initialize Date: Sun, 3 Oct 1999 10:45:52 +0200 Message-ID: <000001bf0d7b$b3a2e980$5ff1b581@pcmarhem> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Importance: Normal Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 3.3 Release with 3com 3c589c and or Xircom CEM56 10/100 + 56 modem. files attached below 3com pccardc dumpcis Xircom pccardc dumpcis dmesg kernel configuration pccard.conf (default as far as I am aware) When inserting either card in slot 1 : pccardd no card in database for for ""("") (repeated 3 times) When inserting 3com in slot 1 driver allocation failed for 3com corporation (3 times) When inserting Xircom in slot 1 driver allocation failed for Xircom corporation (3 times) I have switched just about everything off to free up irq's Windows shows that the xircom likes irq3, the 3com irq 9 the both devices seem to want an io range of 1020 - 102f ( reported in the driver resources window) My questions, whilst being many, in essence boil down to one. Where do i find a good explanation of how the card , pcicx and device options in the kernel, the pccard.conf and rc.conf options relate to each other and how (if indeed they do) do these relate to the resources shown as in use by the card and their controllers in windows. It may be worth noting that the 3com worked (mostly) with the PAOified 3.2 release. # Sample PCCARD configuration file # # Removing all IRQ conflicts from this file can't be done because of some # IRQ-selfish PC-cards. So if you want to use some of these cards in # your machine, you will be forced to modify their IRQ parameters from # the following list. # # IRQ == 0 means "allocate free IRQ from IRQ pool" # IRQ == 16 means "do not use IRQ (e.g. PIO mode)" # # $FreeBSD: src/etc/pccard.conf.sample,v 1.24.2.12 1999/09/11 09:36:53 obrien Exp $ # Generally available IO ports io 0x240-0x360 # Generally available IRQs (Built-in sound-card owners remove 5) irq 3 5 9 10 11 13 15 # Available memory slots memory 0xd4000 96k # 3Com Etherlink III 3C589B, 3C589C card "3Com Corporation" "3C589" config 0x1 "ep0" ? insert echo 3Com Etherlink III inserted insert /etc/pccard_ether ep0 -link0 link1 # insert /etc/pccard_ether ep0 link0 -link1 remove echo 3Com Etherlink III removed remove /sbin/ifconfig ep0 delete # 3Com Etherlink III 3C589D card "3Com Corporation" "3C589D" config 0x1 "ep0" ? insert echo 3Com Etherlink III inserted insert /etc/pccard_ether ep0 remove echo 3Com Etherlink III removed remove /sbin/ifconfig ep0 delete # 3Com Fast Etherlink 3C574TX card "3Com" "3C574-TX Fast EtherLink PC Ca" config 0x1 "ep0" ? 0x1 insert echo 3Com Fast Etherlink 3C574TX inserted insert /etc/pccard_ether ep0 remove echo 3Com Fast Etherlink 3C574TX removed remove /sbin/ifconfig ep0 delete # Xircom CreditCard Modem card "Xircom" "CreditCard Modem CM-56T" config 0x17 "sio1" ? reset 100 insert echo Xircom CreditCard Modem CM-56T inserted remove echo Xircom CreditCard Modem CM-56T removed # Xircom CreditCard Ethernet+Modem (Modem only !!!) card "Xircom" "CreditCard Ethernet" config 0x23 "sio2" ? insert echo Xircom CreditCard Modem inserted remove echo Xircom CreditCard Modem removed # Xircom CreditCard Ethernet 10/100 + modem (modem only) card "Xircom" "CreditCard Ethernet 10/100 + " config 0x1f "sio3" ? insert echo Xircom CreditCard Modem inserted remove echo Xircom CreditCard Modem removed # Xircom CreditCard Ethernet 10/100 + modem (Ethernet part) card "Xircom" "CreditCard Ethernet 10/100 + Modem 56" config 0x17 "sio3" ? insert echo Xircom CreditCard Modem inserted insert /etc/pccard_ether xe0 remove echo Xircom CreditCard Modem removed remove /sbin/ifconfig xe0 delete # Xircom CreditCard Ethernet 10/100 card "Xircom" "CreditCard 10/100" config 0x1 "xe0" ? insert echo Xircom CreditCard Ethernet inserted insert /etc/pccard_ether xe0 remove echo Xircom CreditCard Ethernet removed remove /etc/pccard_ether xe0 delete # Xircom GlobalACCESS modem card "Xircom" "CreditCard Modem 56 - GlobalA" config 0x1f "sio2" ? insert echo Xircom CreditCard Modem 56 - GlobalACCESS inserted remove echo Xircom CreditCard Modem 56 - GlobalACCESS removed # 3com/USR/Megahertz 3CCM556 card "3Com" "3CXM/3CCM556" config 0x23 "sio2" ? insert echo 3Com PCMCIA 56K Modem inserted remove echo 3Com PCMCIA 56K Modem removed # 3Com/NoteWorthy 56K modem (bundled with Toshiba notebooks) card "Toshiba America" "3CXM056-BNW" config 0x20 "sio1" ? insert echo NoteWorthy 56K PCMCIA Modem inserted remove echo NoteWorthy 56K PCMCIA Modem removed # 3Com Megahertz 3CCE589E* 10 Mbps LAN PC Card card "3Com" "Megahertz 589E" config 0x1 "ep0" ? insert echo 3Com Megahertz Ethernet card inserted insert /etc/pccard_ether ep0 remove echo 3Com Megahertz Ethernet card removed remove /sbin/ifconfig ep0 delete # 3Com/USR/MegaHertz 3CCM156 card "3COM" "3CCM156" config 0x23 "sio2" ? insert echo 3Com PCMCIA 56K modem inserted remove echo 3Com PCMCIA 56K modem removed XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Xircom dumpcis output Code 136 not found Code 136 not found code Unknown ignored code Manufacturer ID ignored Configuration data for card in slot 1 Tuple #1, code = 0x1 (Common memory descriptor), length = 2 000: 00 ff Common memory device information: Device number 1, type No device, WPS = OFF Speed = No speed, Memory block size = reserved, 32 units Tuple #2, code = 0x17 (Attribute memory descriptor), length = 2 000: 00 ff Attribute memory device information: Device number 1, type No device, WPS = OFF Speed = No speed, Memory block size = reserved, 32 units Tuple #3, code = 0x15 (Version 1 info), length = 59 000: 05 00 58 69 72 63 6f 6d 00 43 72 65 64 69 74 43 010: 61 72 64 20 45 74 68 65 72 6e 65 74 20 31 30 2f 020: 31 30 30 20 2b 20 4d 6f 64 65 6d 20 35 36 00 43 030: 45 4d 35 36 00 31 2e 30 30 00 ff Version = 5.0, Manuf = [Xircom],card vers = [CreditCard Ethernet 10/100 + Modem 56] Addit. info = [CEM56],[1.00] Tuple #4, code = 0x0 (Null tuple), length = 8 000: cf c6 99 00 00 00 00 00 Tuple #5, code = 0x0 (Null tuple), length = 5 000: 05 01 0a 11 46 Tuple #6, code = 0x44 (Card init date), length = 4 000: f0 44 6d 24 Tuple #7, code = 0x1a (Configuration map), length = 5 000: 01 3f 80 ff 67 Reg len = 2, config register addr = 0xff80, last config = 0x3f Registers: XXX--XX- Tuple #8, code = 0x1b (Configuration entry), length = 20 000: e7 c1 9d 0f 55 4d 5d 4e e0 17 17 ea 60 e8 02 07 010: f0 bc 8e 20 Config index = 0x27(default) Interface byte = 0xc1 (I/O) +RDY/-BSY active, wait signal supported Vcc pwr: Nominal operating supply voltage: 5 x 1V Minimum operating supply voltage: 4.5 x 1V Maximum operating supply voltage: 5.5 x 1V Continuous supply current: 4.5 x 100mA Wait scale Speed = 1.2 x 10 ms RDY/BSY scale Speed = 1.2 x 10 ms Card decodes 23 address lines IRQ modes: IRQs: NMI IOCK BERR 0 1 2 4 8 9 10 12 Max twin cards = 0 Misc attr: (Power down supported) Tuple #9, code = 0x1b (Configuration entry), length = 7 000: 1f 08 ea 60 e8 03 07 Config index = 0x1f Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x3e8 block length = 0x8 Tuple #10, code = 0x1b (Configuration entry), length = 7 000: 17 08 ea 60 f8 02 07 Config index = 0x17 Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x2f8 block length = 0x8 Tuple #11, code = 0x1b (Configuration entry), length = 7 000: 0f 08 ea 60 f8 03 07 Config index = 0xf Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x3f8 block length = 0x8 Tuple #12, code = 0x1b (Configuration entry), length = 3 000: 3f 08 63 Config index = 0x3f Card decodes 3 address lines, full 8/16 Bit I/O Tuple #13, code = 0x21 (Functional ID), length = 2 000: 02 00 Serial port/modem Tuple #14, code = 0x22 (Functional EXT), length = 4 000: 00 02 0f 5c Serial interface extension: 16550 UART, Parity - Space,Mark,Odd,Even, Tuple #15, code = 0x22 (Functional EXT), length = 12 000: 02 06 00 3f 1c 03 03 0f 07 00 01 b5 Data modem services available: Tuple #16, code = 0x22 (Functional EXT), length = 8 000: 13 06 00 0b 00 02 00 b5 Tuple #17, code = 0x21 (Functional ID), length = 2 000: 06 00 Network/LAN adapter Tuple #18, code = 0x22 (Functional EXT), length = 8 000: 04 06 00 80 c7 cf c6 99 Voice services available: Tuple #19, code = 0x14 (No link), length = 0 Tuple #20, code = 0xff (Terminator), length = 0 2 slots found XXXXXXXXXXXXXXXXXXXXXXXx 3com dumpcis Configuration data for card in slot 1 Tuple #1, code = 0x1 (Common memory descriptor), length = 2 000: 00 ff Common memory device information: Device number 1, type No device, WPS = OFF Speed = No speed, Memory block size = reserved, 32 units Tuple #2, code = 0x17 (Attribute memory descriptor), length = 3 000: 43 02 ff Attribute memory device information: Device number 1, type EEPROM, WPS = OFF Speed = 150nS, Memory block size = 8Kb, 1 units Tuple #3, code = 0x20 (Manufacturer ID), length = 4 000: 01 01 89 05 PCMCIA ID = 0x101, OEM ID = 0x589 Tuple #4, code = 0x21 (Functional ID), length = 2 000: 06 00 Network/LAN adapter Tuple #5, code = 0x15 (Version 1 info), length = 57 000: 04 01 33 43 6f 6d 20 43 6f 72 70 6f 72 61 74 69 010: 6f 6e 00 33 43 35 38 39 00 54 50 2f 42 4e 43 20 020: 4c 41 4e 20 43 61 72 64 20 56 65 72 2e 20 32 61 030: 00 30 30 30 30 30 32 00 ff Version = 4.1, Manuf = [3Com Corporation],card vers = [3C589] Addit. info = [TP/BNC LAN Card Ver. 2a],[000002] Tuple #6, code = 0x1a (Configuration map), length = 6 000: 02 03 00 00 01 03 Reg len = 3, config register addr = 0x10000, last config = 0x3 Registers: XX------ Tuple #7, code = 0x1b (Configuration entry), length = 15 000: c1 01 1d 71 55 35 55 54 e0 72 5d 64 30 ff ff Config index = 0x1(default) Interface byte = 0x1 (I/O) Vcc pwr: Nominal operating supply voltage: 5 x 1V Max current average over 1 second: 3 x 10mA Max current average over 10 ms: 5 x 10mA Power down supply current: 5 x 1mA Wait scale Speed = 7.0 x 100 ns RDY/BSY scale Speed = 7.0 x 100 ns Card decodes 18 address lines, full 8/16 Bit I/O IRQ modes: Level, Pulse IRQs: IOCK 1 4 5 6 8 10 11 12 14 Tuple #8, code = 0x1b (Configuration entry), length = 7 000: 03 01 71 55 26 26 54 Config index = 0x3 Vcc pwr: Nominal operating supply voltage: 5 x 1V Max current average over 1 second: 2 x 100mA Max current average over 10 ms: 2 x 100mA Power down supply current: 5 x 1mA Tuple #9, code = 0x19 (JEDEC descr for attribute memory), length = 3 000: 00 00 ff Tuple #10, code = 0x14 (No link), length = 0 Tuple #11, code = 0x10 (Checksum), length = 5 000: 89 ff 80 00 00 Checksum from offset -119, length 128, value is 0x0 Tuple #12, code = 0xff (Terminator), length = 218 000: 00 03 00 00 00 00 00 00 43 32 20 54 45 41 4d 2d 010: 45 61 72 6c 20 41 6c 64 72 69 64 67 65 2c 20 52 020: 65 78 20 41 6c 6c 65 72 73 2c 20 52 75 73 73 65 030: 6c 6c 20 43 68 61 6e 67 2c 20 44 61 76 69 64 20 040: 43 68 69 68 2c 20 48 65 72 6d 61 6e 20 4c 61 6f 050: 2c 20 47 65 6e 65 20 4c 69 6e 2c 20 4c 69 61 6e 060: 67 20 4c 69 6e 2c 20 48 69 65 6e 20 4e 67 75 79 070: 65 6e 2c 20 4b 61 70 20 53 6f 68 2c 20 47 61 72 080: 79 20 57 61 6e 67 00 ff ff ff ff ff ff ff ff ff 090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0d0: ff ff ff ff ff ff ff ff ff ff 2 slots found XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX dmesg Copyright (c) 1992-1999 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 3.3-RELEASE #1: Sat Oct 2 10:24:51 GMT 1999 root@:/usr/src/sys/compile/GENERIC Timecounter "i8254" frequency 1193182 Hz CPU: Pentium/P55C (167.05-MHz 586-class CPU) Origin = "GenuineIntel" Id = 0x543 Stepping = 3 Features=0x8001bf real memory = 134217728 (131072K bytes) avail memory = 127971328 (124972K bytes) Preloaded elf kernel "kernel" at 0xc027a000. Probing for devices on PCI bus 0: chip0: rev 0x01 on pci0.0.0 chip1: rev 0x01 on pci0.1.0 ide_pci0: rev 0x01 on pci0.1.1 chip2: rev 0x01 on pci0.1.3 vga0: rev 0x00 int a irq 255 on pci0.2.0 pcic0: rev 0x01 int a irq 255 on pci0.10.0 pcic1: rev 0x01 int b irq 255 on pci0.10.1 Probing for PnP devices: Probing for devices on the ISA bus: sc0 on isa sc0: VGA color <16 virtual consoles, flags=0x0> atkbdc0 at 0x60-0x6f on motherboard atkbd0 irq 1 on isa psm0 irq 12 on isa psm0: model IntelliMouse, device ID 3 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa sio0: type 8250 sio1: configured irq 3 not in bitmap of probed irqs 0 sio1 not found at 0x2f8 ppc0 not found fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: FIFO enabled, 8 bytes threshold fd0: 1.44MB 3.5in wdc0 at 0x1f0-0x1f7 irq 14 on isa wdc0: unit 0 (wd0): wd0: 6194MB (12685680 sectors), 13424 cyls, 15 heads, 63 S/T, 512 B/S wdc1 at 0x170-0x177 irq 15 on isa wdc1: unit 0 (atapi): , removable, accel, ovlap, dma, iordis acd0: drive speed 3445KB/sec, 128KB cache acd0: supported read types: CD-R, CD-DA acd0: Audio: play, 256 volume levels acd0: Mechanism: ejectable tray acd0: Medium: CD-ROM 120mm photo disc loaded, unlocked xe0: probe xe0 not found vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa npx0 on motherboard npx0: INT 16 interface PC-Card VLSI 82C146 (5 mem & 2 I/O windows) pcic: controller irq 3 Initializing PC-card drivers: xe sio Intel Pentium detected, installing workaround for F00F bug changing root device to wd0s2a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX kernel # # GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.freebsd.org/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.143.2.22 1999/09/14 22:53:30 jkh Exp $ machine "i386" cpu "I586_CPU" ident GENERIC maxusers 32 options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] options MFS #Memory Filesystem options MFS_ROOT #MFS usable as root device, "MFS" req'ed options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options "CD9660_ROOT" #CD-ROM usable as root. "CD9660" req'ed options PROCFS #Process filesystem options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device options UCONSOLE #Allow users to grab the console options FAILSAFE #Be conservative options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor options KTRACE #ktrace(1) syscall trace support options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores config kernel root on wd0 # To make an SMP kernel, the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O # Optionally these may need tweaked, (defaults shown): #options NCPU=2 # number of CPUs #options NBUS=4 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs controller isa0 controller pnp0 # PnP support for ISA controller eisa0 controller pci0 # Floppy drives controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 # IDE controller and disks options "CMD640" # work around CMD640 chip deficiency controller wdc0 at isa? port "IO_WD1" bio irq 14 disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1 # ATAPI devices options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device acd0 #IDE CD-ROM # SCSI Controllers # A single entry for any of these controllers (ncr, ahb, ahc) is # sufficient for any number of installed devices. # SCSI peripherals # Only one of each of these is needed, they are dynamically allocated. controller scbus0 # SCSI bus (required) device da0 # Direct Access (disks) device sa0 # Sequential Access (tape etc) device cd0 # CD device pass0 # Passthrough device (direct SCSI) # Proprietary or custom CD-ROM Interfaces # atkbdc0 controls both the keyboard and the PS/2 mouse controller atkbdc0 at isa? port IO_KBD tty device atkbd0 at isa? tty irq 1 device psm0 at isa? tty irq 12 device vga0 at isa? port ? conflicts # splash screen/screen saver pseudo-device splash # syscons is the default console driver, resembling an SCO console device sc0 at isa? tty # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? tty #options XSERVER # support for X server #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std # Floating point support - do not disable. device npx0 at isa? port IO_NPX irq 13 # Power management support (see LINT for more options) device apm0 at isa? disable flags 0x31 # Advanced Power Management # PCCARD (PCMCIA) support controller card0 device pcic0 at card? device pcic1 at card? # Serial (COM) ports device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4 device sio1 at isa? port "IO_COM2" tty irq 3 device sio2 at isa? disable port "IO_COM3" tty irq 5 device sio3 at isa? disable port "IO_COM4" tty irq 9 # Parallel port device ppc0 at isa? port? flags 0x40 tty irq 7 controller ppbus0 # Parallel port bus (required) device lpt0 at ppbus? # Printer device plip0 at ppbus? # TCP/IP over parallel device ppi0 at ppbus? # Parallel port interface device #controller vpo0 at ppbus? # Requires scbus and da0 # PCI Ethernet NICs. # ISA Ethernet NICs. # Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. # requires PCCARD (PCMCIA) support to be activated device xe0 at isa? port? net irq ? # PCCARD NIC drivers. # ze and zp take over the pcic and cannot coexist with generic pccard # support, nor the ed and ep drivers they replace. # Pseudo devices - the number indicates how many units to allocated. pseudo-device loop # Network loopback pseudo-device ether # Ethernet support pseudo-device sl 1 # Kernel SLIP pseudo-device ppp 1 # Kernel PPP pseudo-device tun 1 # Packet tunnel pseudo-device pty 16 # Pseudo-ttys (telnet etc) pseudo-device gzip # Exec gzipped a.out's # The `bpfilter' pseudo-device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # The number of devices determines the maximum number of # simultaneous BPF clients programs runnable. pseudo-device bpfilter 1 #Berkeley packet filter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message