summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/if_fwip.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/firewire/if_fwip.c')
-rw-r--r--sys/dev/firewire/if_fwip.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/dev/firewire/if_fwip.c b/sys/dev/firewire/if_fwip.c
index 1d10afe..27af6e0 100644
--- a/sys/dev/firewire/if_fwip.c
+++ b/sys/dev/firewire/if_fwip.c
@@ -62,6 +62,7 @@
#else
#include <dev/firewire/firewire.h>
#include <dev/firewire/firewirereg.h>
+#include <dev/firewire/iec13213.h>
#include <dev/firewire/if_fwipvar.h>
#endif
@@ -447,6 +448,27 @@ static void
fwip_post_busreset(void *arg)
{
struct fwip_softc *fwip = arg;
+ struct crom_src *src;
+ struct crom_chunk *root;
+
+ src = fwip->fd.fc->crom_src;
+ root = fwip->fd.fc->crom_root;
+
+ /* RFC2734 IPv4 over IEEE1394 */
+ bzero(&fwip->unit4, sizeof(struct crom_chunk));
+ crom_add_chunk(src, root, &fwip->unit4, CROM_UDIR);
+ crom_add_entry(&fwip->unit4, CSRKEY_SPEC, CSRVAL_IETF);
+ crom_add_simple_text(src, &fwip->unit4, &fwip->spec4, "IANA");
+ crom_add_entry(&fwip->unit4, CSRKEY_VER, 1);
+ crom_add_simple_text(src, &fwip->unit4, &fwip->ver4, "IPv4");
+
+ /* RFC3146 IPv6 over IEEE1394 */
+ bzero(&fwip->unit6, sizeof(struct crom_chunk));
+ crom_add_chunk(src, root, &fwip->unit6, CROM_UDIR);
+ crom_add_entry(&fwip->unit6, CSRKEY_SPEC, CSRVAL_IETF);
+ crom_add_simple_text(src, &fwip->unit6, &fwip->spec6, "IANA");
+ crom_add_entry(&fwip->unit6, CSRKEY_VER, 2);
+ crom_add_simple_text(src, &fwip->unit6, &fwip->ver6, "IPv6");
fwip->last_dest.hi = 0;
fwip->last_dest.lo = 0;
OpenPOWER on IntegriCloud