Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
22369ffdd7
@ -426,7 +426,7 @@ menu "Global build settings"
|
|||||||
config USE_SECCOMP
|
config USE_SECCOMP
|
||||||
bool "Enable SECCOMP"
|
bool "Enable SECCOMP"
|
||||||
select KERNEL_SECCOMP
|
select KERNEL_SECCOMP
|
||||||
depends on (aarch64 || arm || armeb || mips || mipsel || mips64 || mips64el || i386 || powerpc || x86_64)
|
depends on (aarch64 || arm || armeb || mips || mipsel || mips64 || mips64el || i386 || loongarch64 || powerpc || x86_64)
|
||||||
depends on !TARGET_uml
|
depends on !TARGET_uml
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
|
@ -1257,6 +1257,13 @@ config KERNEL_MPTCP_IPV6
|
|||||||
default KERNEL_MPTCP
|
default KERNEL_MPTCP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config KERNEL_NF_CONNTRACK_TIMEOUT
|
||||||
|
bool "Per-connection connection tracking timeout"
|
||||||
|
default y if !SMALL_FLASH
|
||||||
|
help
|
||||||
|
Select this option to enable support for per-connection conntrack timeouts.
|
||||||
|
Increases the (uncompressed) size of nf_conntrack.ko by ~8kB.
|
||||||
|
|
||||||
#
|
#
|
||||||
# NFS related symbols
|
# NFS related symbols
|
||||||
#
|
#
|
||||||
|
@ -28,6 +28,7 @@ asus,rt-ac59u-v2|\
|
|||||||
asus,zenwifi-cd6n|\
|
asus,zenwifi-cd6n|\
|
||||||
asus,zenwifi-cd6r|\
|
asus,zenwifi-cd6r|\
|
||||||
buffalo,bhr-4grv2|\
|
buffalo,bhr-4grv2|\
|
||||||
|
buffalo,wzr-450hp2|\
|
||||||
devolo,magic-2-wifi|\
|
devolo,magic-2-wifi|\
|
||||||
engenius,eap300-v2|\
|
engenius,eap300-v2|\
|
||||||
engenius,eap350-v1|\
|
engenius,eap350-v1|\
|
||||||
|
@ -102,7 +102,8 @@ zbtlink,zbt-z8103ax)
|
|||||||
comfast,cf-e393ax)
|
comfast,cf-e393ax)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x80000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x80000"
|
||||||
;;
|
;;
|
||||||
dlink,aquila-pro-ai-m30-a1)
|
dlink,aquila-pro-ai-m30-a1|\
|
||||||
|
dlink,aquila-pro-ai-m60-a1)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
|
||||||
;;
|
;;
|
||||||
gatonetworks,gdsp)
|
gatonetworks,gdsp)
|
||||||
|
@ -1,29 +1,8 @@
|
|||||||
|
From ed4ae7386257aa66455e330234e513d098a36f84 Mon Sep 17 00:00:00 2001
|
||||||
From: Alex Shumsky <alexthreed@gmail.com>
|
From: Alex Shumsky <alexthreed@gmail.com>
|
||||||
To: u-boot@lists.denx.de
|
Date: Wed, 16 Oct 2024 13:02:03 +0300
|
||||||
Cc: Alex Shumsky <alexthreed@gmail.com>,
|
Subject: [PATCH] rockchip: board: Increase rng-seed size to make it sufficient
|
||||||
Dragan Simic <dsimic@manjaro.org>, Marek Vasut <marex@denx.de>,
|
for modern Linux
|
||||||
Ben Wolsieffer <benwolsieffer@gmail.com>,
|
|
||||||
Caleb Connolly <caleb.connolly@linaro.org>,
|
|
||||||
Chris Morgan <macromorgan@hotmail.com>,
|
|
||||||
Devarsh Thakkar <devarsht@ti.com>,
|
|
||||||
Jagan Teki <jagan@amarulasolutions.com>,
|
|
||||||
Janne Grunau <j@jannau.net>,
|
|
||||||
Jerome Forissier <jerome.forissier@linaro.org>,
|
|
||||||
Jiaxun Yang <jiaxun.yang@flygoat.com>,
|
|
||||||
Jonas Karlman <jonas@kwiboo.se>,
|
|
||||||
Joshua Watt <jpewhacker@gmail.com>,
|
|
||||||
Kever Yang <kever.yang@rock-chips.com>,
|
|
||||||
Mattijs Korpershoek <mkorpershoek@baylibre.com>,
|
|
||||||
Neal Gompa <neal@gompa.dev>,
|
|
||||||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>,
|
|
||||||
Philipp Tomsich <philipp.tomsich@vrull.eu>,
|
|
||||||
Quentin Schulz <quentin.schulz@cherry.de>,
|
|
||||||
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
|
|
||||||
Simon Glass <sjg@chromium.org>, Stefan Roese <sr@denx.de>,
|
|
||||||
Tim Harvey <tharvey@gateworks.com>, Tom Rini <trini@konsulko.com>
|
|
||||||
Subject: [PATCH v6] rockchip: board: Increase rng-seed size to make it sufficient for modern Linux
|
|
||||||
Date: Wed, 16 Oct 2024 13:02:03 +0300 [thread overview]
|
|
||||||
Message-ID: <20241016100203.629713-1-alexthreed@gmail.com> (raw)
|
|
||||||
|
|
||||||
Increase rng-seed size to make Linux happy and initialize rng pool instantly.
|
Increase rng-seed size to make Linux happy and initialize rng pool instantly.
|
||||||
Linux 5.19+ requires 32 bytes of entropy to initialize random pool, but u-boot
|
Linux 5.19+ requires 32 bytes of entropy to initialize random pool, but u-boot
|
||||||
@ -46,27 +25,9 @@ Signed-off-by: Alex Shumsky <alexthreed@gmail.com>
|
|||||||
Fixes: d2048bafae40 ("rockchip: board: Add board_rng_seed() for all Rockchip devices")
|
Fixes: d2048bafae40 ("rockchip: board: Add board_rng_seed() for all Rockchip devices")
|
||||||
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
|
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
|
||||||
Reviewed-by: Marek Vasut <marex@denx.de>
|
Reviewed-by: Marek Vasut <marex@denx.de>
|
||||||
|
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
|
||||||
|
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
|
||||||
---
|
---
|
||||||
|
|
||||||
Changes in v6:
|
|
||||||
- fix wording in docs and debug message
|
|
||||||
|
|
||||||
Changes in v5:
|
|
||||||
- add docs
|
|
||||||
|
|
||||||
Changes in v4:
|
|
||||||
- fix typos and code style
|
|
||||||
|
|
||||||
Changes in v3:
|
|
||||||
- reword warning
|
|
||||||
- increase default rng_seed_size to support older linux as well
|
|
||||||
- reword commit message
|
|
||||||
|
|
||||||
Changes in v2:
|
|
||||||
- add env config knob rng_seed_size
|
|
||||||
- add warning for small rng_seed_size
|
|
||||||
- 12-character commit SHA in Fixes
|
|
||||||
|
|
||||||
arch/arm/mach-rockchip/board.c | 11 ++++++++++-
|
arch/arm/mach-rockchip/board.c | 11 ++++++++++-
|
||||||
common/Kconfig | 3 +++
|
common/Kconfig | 3 +++
|
||||||
doc/usage/environment.rst | 5 +++++
|
doc/usage/environment.rst | 5 +++++
|
@ -0,0 +1,55 @@
|
|||||||
|
From a63456b9191fae2fe49f4b121e025792022e3950 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Markus Volk <f_l_k@t-online.de>
|
||||||
|
Date: Wed, 30 Oct 2024 06:07:16 +0100
|
||||||
|
Subject: [PATCH] scripts/dtc/pylibfdt/libfdt.i_shipped: Use SWIG_AppendOutput
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Swig has changed language specific AppendOutput functions. The helper
|
||||||
|
macro SWIG_AppendOutput remains unchanged. Use that instead
|
||||||
|
of SWIG_Python_AppendOutput, which would require an extra parameter
|
||||||
|
since swig 4.3.0.
|
||||||
|
|
||||||
|
/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
|
||||||
|
| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
|
||||||
|
| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
|
||||||
|
| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
|
||||||
|
| | ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Signed-off-by: Markus Volk <f_l_k@t-online.de>
|
||||||
|
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
|
||||||
|
Link: https://github.com/dgibson/dtc/pull/154
|
||||||
|
---
|
||||||
|
scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||||
|
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
|
||||||
|
@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
|
||||||
|
fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
|
||||||
|
buff = PyByteArray_FromStringAndSize(
|
||||||
|
(const char *)($1 + 1), fdt32_to_cpu($1->len));
|
||||||
|
- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
|
||||||
|
+ resultobj = SWIG_AppendOutput(resultobj, buff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
|
||||||
|
|
||||||
|
%typemap(argout) int *depth {
|
||||||
|
PyObject *val = Py_BuildValue("i", *arg$argnum);
|
||||||
|
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
|
||||||
|
+ resultobj = SWIG_AppendOutput(resultobj, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
%apply int *depth { int *depth };
|
||||||
|
@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
|
||||||
|
if (PyTuple_GET_SIZE(resultobj) == 0)
|
||||||
|
resultobj = val;
|
||||||
|
else
|
||||||
|
- resultobj = SWIG_Python_AppendOutput(resultobj, val);
|
||||||
|
+ resultobj = SWIG_AppendOutput(resultobj, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,40 +17,30 @@
|
|||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
|
|
||||||
#define GCA230718_MAX_LEDS (4u)
|
#define GCA230718_MAX_LEDS (4u)
|
||||||
|
|
||||||
#define GCA230718_OPMODE_DISABLED (0x00u)
|
#define GCA230718_OPMODE_DISABLED (0x00u)
|
||||||
#define GCA230718_OPMODE_NO_TOGGLE (0x01u)
|
#define GCA230718_OPMODE_NO_TOGGLE (0x01u)
|
||||||
#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_DISABLED (0x02u)
|
#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_DISABLED (0x02u)
|
||||||
#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_ENSABLED (0x03u)
|
#define GCA230718_OPMODE_TOGGLE_RAMP_CONTROL_ENSABLED (0x03u)
|
||||||
|
|
||||||
#define GCA230718_1ST_SEQUENCE_BYTE_1 (0x02u)
|
#define GCA230718_1ST_SEQUENCE_BYTE_1 (0x02u)
|
||||||
#define GCA230718_2ND_SEQUENCE_BYTE_1 (0x01u)
|
#define GCA230718_2ND_SEQUENCE_BYTE_1 (0x01u)
|
||||||
#define GCA230718_3RD_SEQUENCE_BYTE_1 (0x03u)
|
#define GCA230718_3RD_SEQUENCE_BYTE_1 (0x03u)
|
||||||
|
|
||||||
struct gca230718_led
|
struct gca230718_led {
|
||||||
{
|
|
||||||
enum led_brightness brightness;
|
enum led_brightness brightness;
|
||||||
struct i2c_client *client;
|
struct i2c_client *client;
|
||||||
struct led_classdev ledClassDev;
|
struct led_classdev ledClassDev;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct gca230718_private
|
struct gca230718_private {
|
||||||
{
|
|
||||||
struct mutex lock;
|
struct mutex lock;
|
||||||
struct gca230718_led leds[GCA230718_MAX_LEDS];
|
struct gca230718_led leds[GCA230718_MAX_LEDS];
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gca230718_init_private_led_data(struct gca230718_private* data)
|
static void gca230718_send_sequence(struct i2c_client *client, u8 byte0,
|
||||||
{
|
struct gca230718_private *priv)
|
||||||
u8 ledIndex;
|
|
||||||
for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++)
|
|
||||||
{
|
|
||||||
data->leds[ledIndex].client = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gca230718_send_sequence(struct i2c_client *client, u8 byte0, struct gca230718_private* gca230718_privateData)
|
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
u8 ledIndex;
|
u8 ledIndex;
|
||||||
@ -64,142 +54,119 @@ static void gca230718_send_sequence(struct i2c_client *client, u8 byte0, struct
|
|||||||
controlCommand[1] = byte0;
|
controlCommand[1] = byte0;
|
||||||
controlCommand[2] = GCA230718_OPMODE_NO_TOGGLE;
|
controlCommand[2] = GCA230718_OPMODE_NO_TOGGLE;
|
||||||
/* Byte 3-6 are set below to the brighness value of the individual LEDs */
|
/* Byte 3-6 are set below to the brighness value of the individual LEDs */
|
||||||
controlCommand[7] = 0x01; /* Frequency, doesn't care as long as GCA230718_OPMODE_NO_TOGGLE is used above */
|
controlCommand[7] =
|
||||||
|
0x01; /* Frequency, doesn't care as long as GCA230718_OPMODE_NO_TOGGLE is used above */
|
||||||
/* Byte 8-11 are set below to the brighness value of the individual LEDs */
|
/* Byte 8-11 are set below to the brighness value of the individual LEDs */
|
||||||
controlCommand[12] = 0x87;
|
controlCommand[12] = 0x87;
|
||||||
|
|
||||||
for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++)
|
for (ledIndex = 0; ledIndex < GCA230718_MAX_LEDS; ledIndex++) {
|
||||||
{
|
controlCommand[3 + ledIndex] = priv->leds[ledIndex].brightness;
|
||||||
controlCommand[3 + ledIndex] = gca230718_privateData->leds[ledIndex].brightness;
|
controlCommand[8 + ledIndex] = priv->leds[ledIndex].brightness;
|
||||||
controlCommand[8 + ledIndex] = gca230718_privateData->leds[ledIndex].brightness;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&(gca230718_privateData->lock));
|
mutex_lock(&(priv->lock));
|
||||||
|
|
||||||
if ((status = i2c_smbus_write_i2c_block_data(client, resetCommandRegister, sizeof(resetCommand), resetCommand)) != 0)
|
if ((status = i2c_smbus_write_i2c_block_data(
|
||||||
{
|
client, resetCommandRegister, sizeof(resetCommand),
|
||||||
pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for reset command\n", status);
|
resetCommand)) != 0) {
|
||||||
}
|
pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for reset command\n",
|
||||||
else if ((status = i2c_smbus_write_i2c_block_data(client, controlCommandRegister, sizeof(controlCommand), controlCommand)) != 0)
|
status);
|
||||||
{
|
} else if ((status = i2c_smbus_write_i2c_block_data(
|
||||||
pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for control command\n", status);
|
client, controlCommandRegister,
|
||||||
|
sizeof(controlCommand), controlCommand)) != 0) {
|
||||||
|
pr_info("Error %i during call of i2c_smbus_write_i2c_block_data for control command\n",
|
||||||
|
status);
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&(gca230718_privateData->lock));
|
mutex_unlock(&(priv->lock));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gca230718_set_brightness(struct led_classdev *led_cdev, enum led_brightness value)
|
static int gca230718_set_brightness(struct led_classdev *led_cdev,
|
||||||
|
enum led_brightness value)
|
||||||
{
|
{
|
||||||
struct gca230718_led* led;
|
struct gca230718_led *led;
|
||||||
struct i2c_client* client;
|
struct i2c_client *client;
|
||||||
|
|
||||||
led = container_of(led_cdev, struct gca230718_led, ledClassDev);
|
led = container_of(led_cdev, struct gca230718_led, ledClassDev);
|
||||||
client = led->client;
|
client = led->client;
|
||||||
|
|
||||||
if (client != NULL)
|
if (client) {
|
||||||
{
|
struct gca230718_private *priv;
|
||||||
struct gca230718_private* gca230718_privateData;
|
|
||||||
|
|
||||||
led->brightness = value;
|
led->brightness = value;
|
||||||
gca230718_privateData = i2c_get_clientdata(client);
|
priv = i2c_get_clientdata(client);
|
||||||
|
|
||||||
gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1, gca230718_privateData);
|
gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1,
|
||||||
|
priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0)
|
|
||||||
static int gca230718_probe(struct i2c_client *client)
|
static int gca230718_probe(struct i2c_client *client)
|
||||||
#else
|
|
||||||
static int gca230718_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
int status = 0;
|
struct gca230718_private *priv;
|
||||||
struct gca230718_private* gca230718_privateData;
|
int err;
|
||||||
|
|
||||||
pr_info("Enter gca230718_probe for device address %u\n", client->addr);
|
pr_info("Enter gca230718_probe for device address %u\n", client->addr);
|
||||||
gca230718_privateData = devm_kzalloc(&(client->dev), sizeof(struct gca230718_private), GFP_KERNEL);
|
priv = devm_kzalloc(&client->dev, sizeof(struct gca230718_private),
|
||||||
|
GFP_KERNEL);
|
||||||
if (gca230718_privateData == NULL)
|
if (!priv) {
|
||||||
{
|
|
||||||
pr_info("Error during allocating memory for private data\n");
|
pr_info("Error during allocating memory for private data\n");
|
||||||
status = -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
struct device_node* ledNode;
|
|
||||||
mutex_init(&gca230718_privateData->lock);
|
|
||||||
gca230718_init_private_led_data(gca230718_privateData);
|
|
||||||
i2c_set_clientdata(client, gca230718_privateData);
|
|
||||||
|
|
||||||
for_each_child_of_node(client->dev.of_node, ledNode)
|
err = devm_mutex_init(&client->dev, &priv->lock);
|
||||||
{
|
if (err)
|
||||||
u32 regValue = 0;
|
return err;
|
||||||
if (of_property_read_u32(ledNode, "reg", ®Value) != 0)
|
|
||||||
{
|
|
||||||
pr_info("Missing entry \"reg\" in node %s\n", ledNode->name);
|
|
||||||
}
|
|
||||||
else if (regValue >= GCA230718_MAX_LEDS)
|
|
||||||
{
|
|
||||||
pr_info("Invalid entry \"reg\" in node %s (%u)\n", ledNode->name, regValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
struct led_classdev* ledClassDev = &(gca230718_privateData->leds[regValue].ledClassDev);
|
|
||||||
struct led_init_data init_data = {};
|
|
||||||
|
|
||||||
gca230718_privateData->leds[regValue].client = client;
|
i2c_set_clientdata(client, priv);
|
||||||
init_data.fwnode = of_fwnode_handle(ledNode);
|
|
||||||
|
|
||||||
pr_info("Creating LED for node %s: reg=%u\n", ledNode->name, regValue);
|
struct device_node *ledNode;
|
||||||
|
for_each_child_of_node(client->dev.of_node, ledNode) {
|
||||||
|
u32 regValue = 0;
|
||||||
|
if (of_property_read_u32(ledNode, "reg", ®Value))
|
||||||
|
pr_info("Missing entry \"reg\" in node %s\n",
|
||||||
|
ledNode->name);
|
||||||
|
else if (regValue >= GCA230718_MAX_LEDS)
|
||||||
|
pr_info("Invalid entry \"reg\" in node %s (%u)\n",
|
||||||
|
ledNode->name, regValue);
|
||||||
|
else {
|
||||||
|
struct led_classdev *ledClassDev =
|
||||||
|
&(priv->leds[regValue].ledClassDev);
|
||||||
|
struct led_init_data init_data = {};
|
||||||
|
|
||||||
ledClassDev->name = of_get_property(ledNode, "label", NULL);
|
priv->leds[regValue].client = client;
|
||||||
if (ledClassDev->name == NULL)
|
init_data.fwnode = of_fwnode_handle(ledNode);
|
||||||
{
|
|
||||||
ledClassDev->name = ledNode->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
ledClassDev->brightness = LED_OFF;
|
pr_info("Creating LED for node %s: reg=%u\n",
|
||||||
ledClassDev->max_brightness = LED_FULL;
|
ledNode->name, regValue);
|
||||||
ledClassDev->brightness_set_blocking = gca230718_set_brightness;
|
|
||||||
|
ledClassDev->name =
|
||||||
if (devm_led_classdev_register_ext(&(client->dev), ledClassDev, &init_data) != 0)
|
of_get_property(ledNode, "label", NULL);
|
||||||
{
|
if (!ledClassDev->name)
|
||||||
pr_info("Error during call of devm_led_classdev_register_ext");
|
ledClassDev->name = ledNode->name;
|
||||||
}
|
|
||||||
}
|
ledClassDev->brightness = LED_OFF;
|
||||||
|
ledClassDev->max_brightness = LED_FULL;
|
||||||
|
ledClassDev->brightness_set_blocking =
|
||||||
|
gca230718_set_brightness;
|
||||||
|
|
||||||
|
if (devm_led_classdev_register_ext(
|
||||||
|
&client->dev, ledClassDev, &init_data))
|
||||||
|
pr_info("Error during call of devm_led_classdev_register_ext");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == 0)
|
/*
|
||||||
{
|
Send full initialization sequence.
|
||||||
/*
|
Afterwards only GCA230718_2ND_SEQUENCE_BYTE_1 must be send to upddate the brightness values.
|
||||||
Send full initialization sequence.
|
*/
|
||||||
Afterwards only GCA230718_2ND_SEQUENCE_BYTE_1 must be send to upddate the brightness values.
|
gca230718_send_sequence(client, GCA230718_1ST_SEQUENCE_BYTE_1, priv);
|
||||||
*/
|
gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1, priv);
|
||||||
gca230718_send_sequence(client, GCA230718_1ST_SEQUENCE_BYTE_1, gca230718_privateData);
|
gca230718_send_sequence(client, GCA230718_3RD_SEQUENCE_BYTE_1, priv);
|
||||||
gca230718_send_sequence(client, GCA230718_2ND_SEQUENCE_BYTE_1, gca230718_privateData);
|
|
||||||
gca230718_send_sequence(client, GCA230718_3RD_SEQUENCE_BYTE_1, gca230718_privateData);
|
|
||||||
}
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,18,0)
|
|
||||||
static void gca230718_remove(struct i2c_client *client)
|
|
||||||
#else
|
|
||||||
static int gca230718_remove(struct i2c_client *client)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
struct gca230718_private* gca230718_privateData;
|
|
||||||
gca230718_privateData = i2c_get_clientdata(client);
|
|
||||||
mutex_destroy(&gca230718_privateData->lock);
|
|
||||||
gca230718_init_private_led_data(gca230718_privateData);
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct i2c_device_id gca230718_i2c_ids[] = {
|
static const struct i2c_device_id gca230718_i2c_ids[] = {
|
||||||
@ -216,7 +183,6 @@ MODULE_DEVICE_TABLE(of, gca230718_dt_ids);
|
|||||||
|
|
||||||
static struct i2c_driver gca230718_driver = {
|
static struct i2c_driver gca230718_driver = {
|
||||||
.probe = gca230718_probe,
|
.probe = gca230718_probe,
|
||||||
.remove = gca230718_remove,
|
|
||||||
.id_table = gca230718_i2c_ids,
|
.id_table = gca230718_i2c_ids,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = KBUILD_MODNAME,
|
.name = KBUILD_MODNAME,
|
||||||
|
@ -1048,6 +1048,40 @@ endef
|
|||||||
$(eval $(call KernelPackage,nfnetlink-queue))
|
$(eval $(call KernelPackage,nfnetlink-queue))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/nfnetlink-cthelper
|
||||||
|
TITLE:=Netfilter User space conntrack helpers
|
||||||
|
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cthelper.ko
|
||||||
|
KCONFIG:=CONFIG_NF_CT_NETLINK_HELPER
|
||||||
|
AUTOLOAD:=$(call AutoProbe,nfnetlink_cthelper)
|
||||||
|
$(call AddDepends/nfnetlink,+kmod-nfnetlink-queue +kmod-nf-conntrack-netlink)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/nfnetlink-cthelper/description
|
||||||
|
Kernel modules support for a netlink-based connection tracking
|
||||||
|
userspace helpers interface
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,nfnetlink-cthelper))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/nfnetlink-cttimeout
|
||||||
|
TITLE:=Netfilter conntrack expectation timeout
|
||||||
|
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cttimeout.ko
|
||||||
|
KCONFIG:=CONFIG_NF_CT_NETLINK_TIMEOUT
|
||||||
|
AUTOLOAD:=$(call AutoProbe,nfnetlink_cttimeout)
|
||||||
|
$(call AddDepends/nfnetlink,+kmod-nf-conntrack +kmod-nf-conntrack-timeout @KERNEL_NF_CONNTRACK_TIMEOUT)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/nfnetlink-cttimeout/description
|
||||||
|
Kernel modules support for a netlink-based connection tracking
|
||||||
|
userspace timeout interface
|
||||||
|
|
||||||
|
Requires CONFIG_NF_CONNTRACK_TIMEOUT (only enabled for non-small flash devices)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,nfnetlink-cttimeout))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/nf-conntrack-netlink
|
define KernelPackage/nf-conntrack-netlink
|
||||||
TITLE:=Connection tracking netlink interface
|
TITLE:=Connection tracking netlink interface
|
||||||
FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
|
FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
|
||||||
|
@ -8,6 +8,10 @@ config MBEDTLS_AES_C
|
|||||||
bool "MBEDTLS_AES_C"
|
bool "MBEDTLS_AES_C"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config MBEDTLS_ARIA_C
|
||||||
|
bool "MBEDTLS_ARIA_C"
|
||||||
|
default n
|
||||||
|
|
||||||
config MBEDTLS_CAMELLIA_C
|
config MBEDTLS_CAMELLIA_C
|
||||||
bool "MBEDTLS_CAMELLIA_C"
|
bool "MBEDTLS_CAMELLIA_C"
|
||||||
default n
|
default n
|
||||||
|
@ -37,6 +37,7 @@ MBEDTLS_BUILD_OPTS_CURVES= \
|
|||||||
|
|
||||||
MBEDTLS_BUILD_OPTS_CIPHERS= \
|
MBEDTLS_BUILD_OPTS_CIPHERS= \
|
||||||
CONFIG_MBEDTLS_AES_C \
|
CONFIG_MBEDTLS_AES_C \
|
||||||
|
CONFIG_MBEDTLS_ARIA_C \
|
||||||
CONFIG_MBEDTLS_CAMELLIA_C \
|
CONFIG_MBEDTLS_CAMELLIA_C \
|
||||||
CONFIG_MBEDTLS_CCM_C \
|
CONFIG_MBEDTLS_CCM_C \
|
||||||
CONFIG_MBEDTLS_CMAC_C \
|
CONFIG_MBEDTLS_CMAC_C \
|
||||||
|
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||||
PKG_MIRROR_HASH:=99139ce325d73f5b250d115703540acfac3bcdc8ee202f2d3aacf3083042bc70
|
PKG_MIRROR_HASH:=41dbb5352eff931ecc78c4ce9a081645c26a7fb8dc57cdd6521a2f8d3a142567
|
||||||
PKG_SOURCE_DATE:=2024-12-17
|
PKG_SOURCE_DATE:=2024-12-22
|
||||||
PKG_SOURCE_VERSION:=fd01fb852302a2683d09ee1c2193d7c51e2b0ba8
|
PKG_SOURCE_VERSION:=42d3937654508b04da64969f9d764ac2ec411904
|
||||||
CMAKE_INSTALL:=1
|
CMAKE_INSTALL:=1
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
@ -50,6 +50,10 @@
|
|||||||
macaddr_art_6: macaddr@6 {
|
macaddr_art_6: macaddr@6 {
|
||||||
reg = <0x6 0x6>;
|
reg = <0x6 0x6>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cal_art_1000: calibration@1000 {
|
||||||
|
reg = <0x1000 0x3d8>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -65,6 +69,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&ath9k {
|
&ath9k {
|
||||||
nvmem-cells = <&macaddr_art_0 1>;
|
nvmem-cells = <&macaddr_art_0 1>, <&cal_art_1000>;
|
||||||
nvmem-cell-names = "mac-address";
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
};
|
};
|
||||||
|
@ -50,6 +50,10 @@
|
|||||||
macaddr_art_6: macaddr@6 {
|
macaddr_art_6: macaddr@6 {
|
||||||
reg = <0x6 0x6>;
|
reg = <0x6 0x6>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cal_art_1000: calibration@1000 {
|
||||||
|
reg = <0x1000 0x3d8>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -65,6 +69,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&ath9k {
|
&ath9k {
|
||||||
nvmem-cells = <&macaddr_art_0 1>;
|
nvmem-cells = <&macaddr_art_0 1>, <&cal_art_1000>;
|
||||||
nvmem-cell-names = "mac-address";
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
};
|
};
|
||||||
|
@ -173,7 +173,6 @@
|
|||||||
ath9k: wifi@0,0 {
|
ath9k: wifi@0,0 {
|
||||||
compatible = "pci168c,002e";
|
compatible = "pci168c,002e";
|
||||||
reg = <0x0000 0 0 0 0>;
|
reg = <0x0000 0 0 0 0>;
|
||||||
qca,no-eeprom;
|
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
|
|
||||||
|
@ -128,6 +128,16 @@
|
|||||||
reg = <0x7f0000 0x10000>;
|
reg = <0x7f0000 0x10000>;
|
||||||
label = "art";
|
label = "art";
|
||||||
read-only;
|
read-only;
|
||||||
|
|
||||||
|
nvmem-layout {
|
||||||
|
compatible = "fixed-layout";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
cal_art_1000: calibration@1000 {
|
||||||
|
reg = <0x1000 0x3d8>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -141,9 +151,8 @@
|
|||||||
reg = <0x0000 0 0 0 0>;
|
reg = <0x0000 0 0 0 0>;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
qca,no-eeprom;
|
nvmem-cells = <&macaddr_uboot_1fc00 0>, <&cal_art_1000>;
|
||||||
nvmem-cells = <&macaddr_uboot_1fc00 0>;
|
nvmem-cell-names = "mac-address", "calibration";
|
||||||
nvmem-cell-names = "mac-address";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
calibration_art_1000: calibration@1000 {
|
calibration_art_1000: calibration@1000 {
|
||||||
reg = <0x1000 0x440>;
|
reg = <0x1000 0x3d8>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -92,6 +92,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&wifi {
|
&wifi {
|
||||||
|
compatible = "pci168c,002e";
|
||||||
nvmem-cells = <&calibration_art_1000>;
|
nvmem-cells = <&calibration_art_1000>;
|
||||||
nvmem-cell-names = "calibration";
|
nvmem-cell-names = "calibration";
|
||||||
};
|
};
|
||||||
|
@ -159,6 +159,7 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
ath9k: wifi@0,0 {
|
ath9k: wifi@0,0 {
|
||||||
|
compatible = "pci168c,0030";
|
||||||
reg = <0x0000 0 0 0 0>;
|
reg = <0x0000 0 0 0 0>;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
|
179
target/linux/ath79/dts/qca9558_buffalo_wzr-450hp2.dts
Normal file
179
target/linux/ath79/dts/qca9558_buffalo_wzr-450hp2.dts
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
|
||||||
|
#include "qca955x.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "buffalo,wzr-450hp2", "qca,qca9558";
|
||||||
|
model = "Buffalo WZR-450HP2/WZR-450HP2D";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led-boot = &led_status_green;
|
||||||
|
led-failsafe = &led_status_green;
|
||||||
|
led-running = &led_status_green;
|
||||||
|
led-upgrade = &led_status_green;
|
||||||
|
label-mac-device = ð0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led_status_green: status_green {
|
||||||
|
function = LED_FUNCTION_STATUS;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wlan_green: wlan_green {
|
||||||
|
function = LED_FUNCTION_WLAN;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,default-trigger = "phy0tpt";
|
||||||
|
};
|
||||||
|
|
||||||
|
led_wps_green: wps_green {
|
||||||
|
function = LED_FUNCTION_WPS;
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "Reset button";
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rfkill {
|
||||||
|
label = "RFKILL button";
|
||||||
|
linux,code = <KEY_RFKILL>;
|
||||||
|
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x0 0x40000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@40000 {
|
||||||
|
reg = <0x40000 0x10000>;
|
||||||
|
label = "u-boot-env";
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@50000 {
|
||||||
|
compatible = "denx,uimage";
|
||||||
|
reg = <0x50000 0xf90000>;
|
||||||
|
label = "firmware";
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@fe0000 {
|
||||||
|
reg = <0xfe0000 0x10000>;
|
||||||
|
label = "user_property";
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
art: partition@ff0000 {
|
||||||
|
label = "art";
|
||||||
|
reg = <0xff0000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
|
||||||
|
nvmem-layout {
|
||||||
|
compatible = "fixed-layout";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
macaddr_wan: macaddr@0 {
|
||||||
|
reg = <0x0 0x6>;
|
||||||
|
};
|
||||||
|
|
||||||
|
macaddr_lan: macaddr@6 {
|
||||||
|
reg = <0x6 0x6>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cal_ath9k: cal_ath9k@1000 {
|
||||||
|
reg = <0x1000 0x440>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
qca,ar8327-initvals = <
|
||||||
|
0x04 0x07600000 /* PORT0 PAD MODE CTRL: RGMII, to eth0 */
|
||||||
|
0x0c 0x00080080 /* PORT6 PAD MODE CTRL: SGMII, to eth1 */
|
||||||
|
0x10 0x81000080 /* POWER ON STRAP */
|
||||||
|
0x50 0xcc35cc35 /* LED_CTRL0 */
|
||||||
|
0x54 0xca35ca35 /* LED_CTRL1 */
|
||||||
|
0x58 0xc935c935 /* LED_CTRL2 */
|
||||||
|
0x5c 0x03ffff00 /* LED_CTRL3 */
|
||||||
|
0x7c 0x0000007e /* PORT0_STATUS */
|
||||||
|
0x94 0x0000007e /* PORT6_STATUS */
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
nvmem-cells = <&macaddr_wan>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
pll-data = <0x56000000 0x00000101 0x00001616>;
|
||||||
|
|
||||||
|
gmac-config {
|
||||||
|
device = <&gmac>;
|
||||||
|
rgmii-enabled = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
nvmem-cells = <&macaddr_lan>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
pll-data = <0x03000101 0x00000101 0x00001616>;
|
||||||
|
|
||||||
|
fixed-link {
|
||||||
|
speed = <1000>;
|
||||||
|
full-duplex;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&wmac {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
nvmem-cells = <&cal_ath9k>;
|
||||||
|
nvmem-cell-names = "calibration";
|
||||||
|
};
|
@ -213,6 +213,10 @@ ath79_setup_interfaces()
|
|||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
|
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
|
||||||
;;
|
;;
|
||||||
|
buffalo,wzr-450hp2)
|
||||||
|
ucidef_add_switch "switch0" \
|
||||||
|
"6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
|
||||||
|
;;
|
||||||
buffalo,wzr-600dhp|\
|
buffalo,wzr-600dhp|\
|
||||||
buffalo,wzr-hp-ag300h|\
|
buffalo,wzr-hp-ag300h|\
|
||||||
tplink,archer-c25-v1|\
|
tplink,archer-c25-v1|\
|
||||||
|
@ -83,11 +83,6 @@ case "$FIRMWARE" in
|
|||||||
meraki,mr12)
|
meraki,mr12)
|
||||||
caldata_extract "art" 0x11000 0xeb8
|
caldata_extract "art" 0x11000 0xeb8
|
||||||
;;
|
;;
|
||||||
netgear,wnr2200-8m|\
|
|
||||||
netgear,wnr2200-16m|\
|
|
||||||
tplink,tl-wr842n-v1)
|
|
||||||
caldata_extract "art" 0x1000 0x3e0
|
|
||||||
;;
|
|
||||||
ubnt,powerbridge-m|\
|
ubnt,powerbridge-m|\
|
||||||
ubnt,rocket-m)
|
ubnt,rocket-m)
|
||||||
caldata_extract "art" 0x1000 0x1000
|
caldata_extract "art" 0x1000 0x1000
|
||||||
|
@ -760,6 +760,18 @@ define Device/buffalo_wzr-hp-g450h
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += buffalo_wzr-hp-g450h
|
TARGET_DEVICES += buffalo_wzr-hp-g450h
|
||||||
|
|
||||||
|
define Device/buffalo_wzr-450hp2
|
||||||
|
$(Device/buffalo_common)
|
||||||
|
SOC := qca9558
|
||||||
|
DEVICE_MODEL := WZR-450HP2
|
||||||
|
DEVICE_ALT0_VENDOR := Buffalo
|
||||||
|
DEVICE_ALT0_MODEL := WZR-450HP2D
|
||||||
|
BUFFALO_PRODUCT := WZR-450HP2
|
||||||
|
IMAGE_SIZE := 15936k
|
||||||
|
SUPPORTED_DEVICES += wzr-450hp2
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += buffalo_wzr-450hp2
|
||||||
|
|
||||||
define Device/comfast_cf-e110n-v2
|
define Device/comfast_cf-e110n-v2
|
||||||
SOC := qca9533
|
SOC := qca9533
|
||||||
DEVICE_VENDOR := COMFAST
|
DEVICE_VENDOR := COMFAST
|
||||||
|
@ -180,7 +180,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
cal_data_1000: calibration@1000 {
|
cal_data_1000: calibration@1000 {
|
||||||
reg = <0x1000 0x440>;
|
reg = <0x1000 0x3d8>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -202,6 +202,9 @@ ipq40xx_setup_macs()
|
|||||||
wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
||||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||||
;;
|
;;
|
||||||
|
extreme-networks,ws-ap3915i)
|
||||||
|
label_mac="$(mtd_get_mac_ascii CFG1 ethaddr)"
|
||||||
|
;;
|
||||||
ezviz,cs-w3-wd1200g-eup)
|
ezviz,cs-w3-wd1200g-eup)
|
||||||
label_mac=$(mtd_get_mac_binary "ART" 0x6)
|
label_mac=$(mtd_get_mac_binary "ART" 0x6)
|
||||||
;;
|
;;
|
||||||
|
@ -68,6 +68,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
output-usb-power {
|
||||||
|
compatible = "regulator-output";
|
||||||
|
vout-supply = <®_usb>;
|
||||||
|
};
|
||||||
|
|
||||||
reg_usb: regulator-usb {
|
reg_usb: regulator-usb {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
|
|
||||||
@ -414,8 +419,6 @@
|
|||||||
|
|
||||||
&usb2_hs_phy {
|
&usb2_hs_phy {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy-supply = <®_usb>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&watchdog {
|
&watchdog {
|
||||||
|
@ -3,4 +3,5 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
|
|||||||
CONFIG_MTD_UBI_BLOCK=y
|
CONFIG_MTD_UBI_BLOCK=y
|
||||||
CONFIG_MTD_UBI_NVMEM=y
|
CONFIG_MTD_UBI_NVMEM=y
|
||||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||||
|
CONFIG_REGULATOR_USERSPACE_CONSUMER=y
|
||||||
CONFIG_UBIFS_FS=y
|
CONFIG_UBIFS_FS=y
|
||||||
|
@ -542,7 +542,6 @@ define Device/extreme-networks_ws-ap3915i
|
|||||||
DEVICE_MODEL := WS-AP3915i
|
DEVICE_MODEL := WS-AP3915i
|
||||||
IMAGE_SIZE := 30080k
|
IMAGE_SIZE := 30080k
|
||||||
SOC := qcom-ipq4029
|
SOC := qcom-ipq4029
|
||||||
BLOCKSIZE := 128k
|
|
||||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size | append-metadata
|
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size | append-metadata
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += extreme-networks_ws-ap3915i
|
TARGET_DEVICES += extreme-networks_ws-ap3915i
|
||||||
|
@ -136,6 +136,10 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
cal_ath9k_cal_985: calibration@985 {
|
||||||
|
reg = <0x985 0x3d8>;
|
||||||
|
};
|
||||||
|
|
||||||
macaddr_ath9k_cal_a91: macaddr@a91 {
|
macaddr_ath9k_cal_a91: macaddr@a91 {
|
||||||
compatible = "mac-base";
|
compatible = "mac-base";
|
||||||
reg = <0xa91 0x6>;
|
reg = <0xa91 0x6>;
|
||||||
@ -180,8 +184,9 @@
|
|||||||
reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
wifi@0,0 {
|
wifi@0,0 {
|
||||||
compatible = "pci0,0";
|
compatible = "pci168c,002d";
|
||||||
reg = <0x7000 0 0 0 0>;
|
reg = <0x7000 0 0 0 0>;
|
||||||
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
|
nvmem-cells = <&cal_ath9k_cal_985>;
|
||||||
|
nvmem-cell-names = "calibration";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -163,6 +163,10 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
cal_ath9k_cal_985: calibration@985 {
|
||||||
|
reg = <0x985 0x3d8>;
|
||||||
|
};
|
||||||
|
|
||||||
macaddr_ath9k_cal_a91: macaddr@a91 {
|
macaddr_ath9k_cal_a91: macaddr@a91 {
|
||||||
compatible = "mac-base";
|
compatible = "mac-base";
|
||||||
reg = <0xa91 0x6>;
|
reg = <0xa91 0x6>;
|
||||||
@ -206,9 +210,10 @@
|
|||||||
reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
wifi@0,0 {
|
wifi@0,0 {
|
||||||
compatible = "pci0,0";
|
compatible = "pci168c,002d";
|
||||||
reg = <0x7000 0 0 0 0>;
|
reg = <0x7000 0 0 0 0>;
|
||||||
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
|
nvmem-cells = <&cal_ath9k_cal_985>;
|
||||||
|
nvmem-cell-names = "calibration";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
cal_urlader_985: cal@985 {
|
cal_urlader_985: cal@985 {
|
||||||
reg = <0x985 0x440>;
|
reg = <0x985 0x3d8>;
|
||||||
};
|
};
|
||||||
|
|
||||||
macaddr_urlader_a91: macaddr@a91 {
|
macaddr_urlader_a91: macaddr@a91 {
|
||||||
@ -94,7 +94,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&wifi {
|
&wifi {
|
||||||
/delete-property/ qca,no-eeprom;
|
compatible = "pci168c,002e";
|
||||||
nvmem-cells = <&cal_urlader_985>;
|
nvmem-cells = <&cal_urlader_985>;
|
||||||
nvmem-cell-names = "calibration";
|
nvmem-cell-names = "calibration";
|
||||||
};
|
};
|
||||||
|
@ -49,6 +49,10 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
cal_urlader_985: cal@985 {
|
||||||
|
reg = <0x985 0x3d8>;
|
||||||
|
};
|
||||||
|
|
||||||
macaddr_urlader_a91: macaddr@a91 {
|
macaddr_urlader_a91: macaddr@a91 {
|
||||||
compatible = "mac-base";
|
compatible = "mac-base";
|
||||||
reg = <0xa91 0x6>;
|
reg = <0xa91 0x6>;
|
||||||
@ -89,3 +93,9 @@
|
|||||||
&phy1 {
|
&phy1 {
|
||||||
reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&wifi {
|
||||||
|
compatible = "pci168c,002e";
|
||||||
|
nvmem-cells = <&cal_urlader_985>;
|
||||||
|
nvmem-cell-names = "calibration";
|
||||||
|
};
|
||||||
|
@ -127,3 +127,8 @@
|
|||||||
&phy1 {
|
&phy1 {
|
||||||
reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&wifi {
|
||||||
|
compatible = "pci168c,0030";
|
||||||
|
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
|
||||||
|
};
|
||||||
|
@ -155,10 +155,8 @@
|
|||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
device_type = "pci";
|
device_type = "pci";
|
||||||
|
|
||||||
wifi: wifi@168c,002e {
|
wifi: wifi@0,0 {
|
||||||
compatible = "pci168c,002e";
|
|
||||||
reg = <0 0 0 0 0>;
|
reg = <0 0 0 0 0>;
|
||||||
qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -19,9 +19,6 @@ case "$FIRMWARE" in
|
|||||||
avm,fritz3390)
|
avm,fritz3390)
|
||||||
caldata_extract_reverse "urlader" 0x2546 0x440
|
caldata_extract_reverse "urlader" 0x2546 0x440
|
||||||
;;
|
;;
|
||||||
avm,fritz7360sl)
|
|
||||||
caldata_extract "urlader" 0x985 0x1000
|
|
||||||
;;
|
|
||||||
avm,fritz7412|\
|
avm,fritz7412|\
|
||||||
avm,fritz7430)
|
avm,fritz7430)
|
||||||
/usr/bin/fritz_cal_extract -i 1 -s 0x1e000 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader") || \
|
/usr/bin/fritz_cal_extract -i 1 -s 0x1e000 -e 0x207 -l 5120 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader") || \
|
||||||
|
@ -45,9 +45,6 @@ case "$FIRMWARE" in
|
|||||||
caldata_extract "calibration" 0xf000 0x1000
|
caldata_extract "calibration" 0xf000 0x1000
|
||||||
ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 0x20c
|
ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 0x20c
|
||||||
;;
|
;;
|
||||||
avm,fritz7312|avm,fritz7320)
|
|
||||||
caldata_extract "urlader" 0x985 0x1000
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
caldata_die "board $board is not supported yet"
|
caldata_die "board $board is not supported yet"
|
||||||
;;
|
;;
|
||||||
|
377
target/linux/mediatek/dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts
Normal file
377
target/linux/mediatek/dts/mt7986a-dlink-aquila-pro-ai-m60-a1.dts
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
#include "mt7986a.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "D-Link AQUILA PRO AI M60 A1";
|
||||||
|
compatible = "dlink,aquila-pro-ai-m60-a1", "mediatek,mt7986a";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
led-boot = &led_status_white;
|
||||||
|
led-failsafe = &led_status_red;
|
||||||
|
led-running = &led_status_white;
|
||||||
|
led-upgrade = &led_status_blue;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@40000000 {
|
||||||
|
reg = <0 0x40000000 0 0x20000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
button-reset {
|
||||||
|
label = "reset";
|
||||||
|
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-wps {
|
||||||
|
label = "wps";
|
||||||
|
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-leds-on-off {
|
||||||
|
label = "leds-on-off";
|
||||||
|
linux,code = <KEY_LIGHTS_TOGGLE>;
|
||||||
|
gpios = <&pio 47 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
gmac0: mac@0 {
|
||||||
|
compatible = "mediatek,eth-mac";
|
||||||
|
reg = <0>;
|
||||||
|
phy-mode = "2500base-x";
|
||||||
|
|
||||||
|
nvmem-cells = <&macaddr_odm 1>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
fixed-link {
|
||||||
|
speed = <2500>;
|
||||||
|
full-duplex;
|
||||||
|
pause;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gmac1: mac@1 {
|
||||||
|
compatible = "mediatek,eth-mac";
|
||||||
|
reg = <1>;
|
||||||
|
phy-mode = "2500base-x";
|
||||||
|
phy-handle = <&phy6>;
|
||||||
|
nvmem-cells = <&macaddr_odm 0>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
label = "internet";
|
||||||
|
};
|
||||||
|
|
||||||
|
mdio: mdio-bus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
|
||||||
|
reset-delay-us = <1500000>;
|
||||||
|
reset-post-delay-us = <1000000>;
|
||||||
|
|
||||||
|
phy6: phy@6 {
|
||||||
|
compatible = "maxlinear,gpy211", "ethernet-phy-ieee802.3-c45";
|
||||||
|
reg = <6>;
|
||||||
|
phy-mode = "2500base-x";
|
||||||
|
};
|
||||||
|
|
||||||
|
switch@1f {
|
||||||
|
compatible = "mediatek,mt7531";
|
||||||
|
reg = <31>;
|
||||||
|
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
interrupt-parent = <&pio>;
|
||||||
|
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
label = "lan1";
|
||||||
|
};
|
||||||
|
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
label = "lan2";
|
||||||
|
};
|
||||||
|
|
||||||
|
port@2 {
|
||||||
|
reg = <2>;
|
||||||
|
label = "lan3";
|
||||||
|
};
|
||||||
|
|
||||||
|
port@3 {
|
||||||
|
reg = <3>;
|
||||||
|
label = "lan4";
|
||||||
|
};
|
||||||
|
|
||||||
|
port@6 {
|
||||||
|
reg = <6>;
|
||||||
|
label = "cpu";
|
||||||
|
ethernet = <&gmac0>;
|
||||||
|
phy-mode = "2500base-x";
|
||||||
|
|
||||||
|
fixed-link {
|
||||||
|
speed = <2500>;
|
||||||
|
full-duplex;
|
||||||
|
pause;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&pio {
|
||||||
|
spi_flash_pins: spi-flash-pins-33-to-38 {
|
||||||
|
mux {
|
||||||
|
function = "spi";
|
||||||
|
groups = "spi0", "spi0_wp_hold";
|
||||||
|
};
|
||||||
|
conf-pu {
|
||||||
|
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
|
||||||
|
drive-strength = <8>;
|
||||||
|
mediatek,pull-up-adv = <0>; /* bias-disable */
|
||||||
|
};
|
||||||
|
conf-pd {
|
||||||
|
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
|
||||||
|
drive-strength = <8>;
|
||||||
|
mediatek,pull-down-adv = <0>; /* bias-disable */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
wf_2g_5g_pins: wf_2g_5g-pins {
|
||||||
|
mux {
|
||||||
|
function = "wifi";
|
||||||
|
groups = "wf_2g", "wf_5g";
|
||||||
|
};
|
||||||
|
conf {
|
||||||
|
pins =
|
||||||
|
"WF0_HB2",
|
||||||
|
"WF0_HB3",
|
||||||
|
"WF0_HB4",
|
||||||
|
"WF0_HB0",
|
||||||
|
"WF0_HB0_B",
|
||||||
|
"WF0_HB5",
|
||||||
|
"WF0_HB6",
|
||||||
|
"WF0_HB7",
|
||||||
|
"WF0_HB8",
|
||||||
|
"WF0_HB9",
|
||||||
|
"WF0_HB10",
|
||||||
|
"WF0_TOP_CLK",
|
||||||
|
"WF0_TOP_DATA",
|
||||||
|
"WF1_HB1",
|
||||||
|
"WF1_HB2",
|
||||||
|
"WF1_HB3",
|
||||||
|
"WF1_HB4",
|
||||||
|
"WF1_HB0",
|
||||||
|
"WF1_HB5",
|
||||||
|
"WF1_HB6",
|
||||||
|
"WF1_HB7",
|
||||||
|
"WF1_HB8",
|
||||||
|
"WF1_TOP_CLK",
|
||||||
|
"WF1_TOP_DATA";
|
||||||
|
drive-strength = <4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c_pins_3_4: i2c-pins-3-4 {
|
||||||
|
mux {
|
||||||
|
function = "i2c";
|
||||||
|
groups = "i2c";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spi_flash_pins>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
compatible = "spi-nand";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <20000000>;
|
||||||
|
spi-tx-bus-width = <4>;
|
||||||
|
spi-rx-bus-width = <4>;
|
||||||
|
|
||||||
|
mediatek,nmbm;
|
||||||
|
mediatek,bmt-max-ratio = <1>;
|
||||||
|
mediatek,bmt-max-reserved-blocks = <64>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "BL2";
|
||||||
|
reg = <0x000000 0x100000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@100000 {
|
||||||
|
label = "u-boot-env";
|
||||||
|
reg = <0x100000 0x80000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@180000 {
|
||||||
|
label = "Factory";
|
||||||
|
reg = <0x180000 0x200000>;
|
||||||
|
read-only;
|
||||||
|
|
||||||
|
nvmem-layout {
|
||||||
|
compatible = "fixed-layout";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
eeprom_factory_0: eeprom@0 {
|
||||||
|
reg = <0x0 0x1000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@380000 {
|
||||||
|
label = "FIP";
|
||||||
|
reg = <0x380000 0x200000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@580000 {
|
||||||
|
label = "ubi";
|
||||||
|
reg = <0x580000 0x3200000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@3780000 {
|
||||||
|
label = "ubi1";
|
||||||
|
reg = <0x3780000 0x3200000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@6980000 {
|
||||||
|
label = "Odm";
|
||||||
|
reg = <0x6980000 0x40000>;
|
||||||
|
read-only;
|
||||||
|
|
||||||
|
nvmem-layout {
|
||||||
|
compatible = "fixed-layout";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
macaddr_odm: macaddr@81 {
|
||||||
|
compatible = "mac-base";
|
||||||
|
reg = <0x81 0x6>;
|
||||||
|
#nvmem-cell-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@69c0000 {
|
||||||
|
label = "Config1";
|
||||||
|
reg = <0x69c0000 0x80000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@6a40000 {
|
||||||
|
label = "Config2";
|
||||||
|
reg = <0x6a40000 0x80000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@6ac0000 {
|
||||||
|
label = "Storage";
|
||||||
|
reg = <0x6ac0000 0xA00000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&wifi {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&wf_2g_5g_pins>;
|
||||||
|
|
||||||
|
|
||||||
|
nvmem-cells = <&eeprom_factory_0>;
|
||||||
|
nvmem-cell-names = "eeprom";
|
||||||
|
|
||||||
|
band@0 {
|
||||||
|
/* 2.4 GHz */
|
||||||
|
reg = <0>;
|
||||||
|
nvmem-cells = <&macaddr_odm 2>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
};
|
||||||
|
band@1 {
|
||||||
|
/* 5 GHz */
|
||||||
|
reg = <1>;
|
||||||
|
nvmem-cells = <&macaddr_odm 5>;
|
||||||
|
nvmem-cell-names = "mac-address";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&watchdog {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c_pins_3_4>;
|
||||||
|
|
||||||
|
gca230718@40 {
|
||||||
|
compatible = "unknown,gca230718";
|
||||||
|
reg = <0x40>;
|
||||||
|
|
||||||
|
led_status_red: led@0 {
|
||||||
|
color = <LED_COLOR_ID_RED>;
|
||||||
|
function = LED_FUNCTION_STATUS;
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led@1 {
|
||||||
|
color = <LED_COLOR_ID_GREEN>;
|
||||||
|
function = LED_FUNCTION_STATUS;
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_status_blue: led@2 {
|
||||||
|
color = <LED_COLOR_ID_BLUE>;
|
||||||
|
function = LED_FUNCTION_STATUS;
|
||||||
|
reg = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led_status_white: led@3 {
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
function = LED_FUNCTION_STATUS;
|
||||||
|
reg = <3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -100,7 +100,8 @@ mediatek_setup_interfaces()
|
|||||||
openwrt,one)
|
openwrt,one)
|
||||||
ucidef_set_interfaces_lan_wan eth1 eth0
|
ucidef_set_interfaces_lan_wan eth1 eth0
|
||||||
;;
|
;;
|
||||||
dlink,aquila-pro-ai-m30-a1)
|
dlink,aquila-pro-ai-m30-a1|\
|
||||||
|
dlink,aquila-pro-ai-m60-a1)
|
||||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet
|
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet
|
||||||
;;
|
;;
|
||||||
keenetic,kn-3911|\
|
keenetic,kn-3911|\
|
||||||
|
@ -128,6 +128,10 @@ platform_do_upgrade() {
|
|||||||
yuncore,ax835)
|
yuncore,ax835)
|
||||||
default_do_upgrade "$1"
|
default_do_upgrade "$1"
|
||||||
;;
|
;;
|
||||||
|
dlink,aquila-pro-ai-m60-a1)
|
||||||
|
fw_setenv sw_tryactive 0
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
;;
|
||||||
mercusys,mr90x-v1|\
|
mercusys,mr90x-v1|\
|
||||||
tplink,re6000xd)
|
tplink,re6000xd)
|
||||||
CI_UBIPART="ubi0"
|
CI_UBIPART="ubi0"
|
||||||
|
@ -777,6 +777,20 @@ define Device/dlink_aquila-pro-ai-m30-a1
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += dlink_aquila-pro-ai-m30-a1
|
TARGET_DEVICES += dlink_aquila-pro-ai-m30-a1
|
||||||
|
|
||||||
|
define Device/dlink_aquila-pro-ai-m60-a1
|
||||||
|
DEVICE_VENDOR := D-Link
|
||||||
|
DEVICE_MODEL := AQUILA PRO AI M60
|
||||||
|
DEVICE_VARIANT := A1
|
||||||
|
DEVICE_DTS := mt7986a-dlink-aquila-pro-ai-m60-a1
|
||||||
|
DEVICE_DTS_DIR := ../dts
|
||||||
|
DEVICE_PACKAGES := kmod-leds-gca230718 kmod-mt7915e kmod-mt7986-firmware mt7986-wo-firmware
|
||||||
|
IMAGES += recovery.bin
|
||||||
|
IMAGE_SIZE := 51200k
|
||||||
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||||
|
IMAGE/recovery.bin := sysupgrade-tar | pad-to $$(IMAGE_SIZE) | dlink-ai-recovery-header DLK6E8202001 \x30\x6C\x19\x0C \x00\x00\x2C\x00 \x00\x00\x20\x03 \x82\x6E
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += dlink_aquila-pro-ai-m60-a1
|
||||||
|
|
||||||
define Device/edgecore_eap111
|
define Device/edgecore_eap111
|
||||||
DEVICE_VENDOR := Edgecore
|
DEVICE_VENDOR := Edgecore
|
||||||
DEVICE_MODEL := EAP111
|
DEVICE_MODEL := EAP111
|
||||||
|
Loading…
x
Reference in New Issue
Block a user