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)