diff options
author | dfr <dfr@FreeBSD.org> | 2004-06-13 13:58:00 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2004-06-13 13:58:00 +0000 |
commit | 4707be9db2b74eec181c39fa563612a16cbda5f8 (patch) | |
tree | c4869721d97eaa8b37b1d00a7a55ebefde76a087 | |
parent | 53efa6c4cc84756af0a9d11c54dc6f5a5d015ec3 (diff) | |
download | FreeBSD-src-4707be9db2b74eec181c39fa563612a16cbda5f8.zip FreeBSD-src-4707be9db2b74eec181c39fa563612a16cbda5f8.tar.gz |
Add configuration rom entries for IP over firewire.
-rw-r--r-- | sys/dev/firewire/if_fwip.c | 22 | ||||
-rw-r--r-- | sys/dev/firewire/if_fwipvar.h | 6 |
2 files changed, 28 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; diff --git a/sys/dev/firewire/if_fwipvar.h b/sys/dev/firewire/if_fwipvar.h index 5542328..fe20218 100644 --- a/sys/dev/firewire/if_fwipvar.h +++ b/sys/dev/firewire/if_fwipvar.h @@ -48,6 +48,12 @@ struct fwip_softc { struct fw_pkt last_hdr; struct task start_send; STAILQ_HEAD(, fw_xfer) xferlist; + struct crom_chunk unit4; /* unit directory for IPv4 */ + struct crom_chunk spec4; /* specifier description IPv4 */ + struct crom_chunk ver4; /* version description IPv4 */ + struct crom_chunk unit6; /* unit directory for IPv6 */ + struct crom_chunk spec6; /* specifier description IPv6 */ + struct crom_chunk ver6; /* version description IPv6 */ struct fwip_eth_softc { /* XXX this must be the first for if_fwsubr.c */ struct fw_com fwcom; /* firewire common data */ |