Module Name: src Committed By: nisimura Date: Tue Mar 24 10:47:03 UTC 2020
Modified Files: src/sys/arch/arm/sociox: if_scx.c Log Message: try to be consistent for the number of address match filter. tentative util the reality. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/sociox/if_scx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/sociox/if_scx.c diff -u src/sys/arch/arm/sociox/if_scx.c:1.8 src/sys/arch/arm/sociox/if_scx.c:1.9 --- src/sys/arch/arm/sociox/if_scx.c:1.8 Tue Mar 24 10:31:52 2020 +++ src/sys/arch/arm/sociox/if_scx.c Tue Mar 24 10:47:03 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_scx.c,v 1.8 2020/03/24 10:31:52 nisimura Exp $ */ +/* $NetBSD: if_scx.c,v 1.9 2020/03/24 10:47:03 nisimura Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -40,12 +40,13 @@ * to designify ring number from which to arrive or to which go. * - memory mapped EEPROM to hold MAC address. The rest of the area is * occupied by a set of ucode for two DMA engines and one packet engine. - * - The size of frame address filter is unknown. Might be 32 + * - The size of frame address filter is unknown. Might be 16 or even 128. * - The first slot is my own station address. Always enabled to perform * to identify oneself. - * - 1~31 are for supplimental MAC addresses. Independently enabled - * for use. Good to catch multicast. Byte-wise selective match available. - * Use to catch { 0x01, 0x00, 0x00 } and/or { 0x33, 0x33 }. + * - 1~16 are for supplimental MAC addresses. Independently enabled for + * use. Good to catch multicast. Byte-wise selective match available. + * Use the mask to catch { 0x01, 0x00, 0x00 } and/or { 0x33, 0x33 }. + * - 16~128 might be exact match without byte-mask. * - The size of multicast hash filter store is unknown. Might be 256 bit. * - Socionext/Linaro "NetSec" code makes many cut shorts. Some constants * are left unexplained. The values should be handled via external @@ -55,7 +56,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_scx.c,v 1.8 2020/03/24 10:31:52 nisimura Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_scx.c,v 1.9 2020/03/24 10:47:03 nisimura Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -924,7 +925,7 @@ scx_set_rcvfilt(struct scx_softc *sc) } printf("[%d] %s\n", i, ether_sprintf(enm->enm_addrlo)); if (i < 16) { - /* use 31 entry perfect match filter */ + /* use 15 entry perfect match filter */ uint32_t addr; uint8_t *ep = enm->enm_addrlo; addr = (ep[3] << 24) | (ep[2] << 16)