* [PATCH 2/7] tty: serial: fsl_lpuart: free IDs allocated by IDA
From: Michael Walle @ 2020-02-20 17:43 UTC (permalink / raw)
To: linux-serial, devicetree, linux-kernel, linux-arm-kernel
Cc: Mark Rutland, Peng Fan, Greg Kroah-Hartman, Li Yang,
Michael Walle, Rob Herring, Yuan Yao, Vabhav Sharma, Jiri Slaby,
Shawn Guo
In-Reply-To: <20200220174334.23322-1-michael@walle.cc>
Since commit 3bc3206e1c0f ("serial: fsl_lpuart: Remove the alias node
dependence") the port line number can also be allocated by IDA, but in
case of an error the ID will no be removed again. More importantly, any
ID will be freed in remove(), even if it wasn't allocated but instead
fetched by of_alias_get_id(). If it was not allocated by IDA there will
be a warning:
WARN(1, "ida_free called for id=%d which is not allocated.\n", id);
Move the ID allocation more to the end of the probe() so that we still
can use plain return in the first error cases.
Fixes: 3bc3206e1c0f ("serial: fsl_lpuart: Remove the alias node dependence")
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/tty/serial/fsl_lpuart.c | 39 ++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index 27fdc131c352..c31b8f3db6bf 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -264,6 +264,7 @@ struct lpuart_port {
int rx_dma_rng_buf_len;
unsigned int dma_tx_nents;
wait_queue_head_t dma_wait;
+ bool id_allocated;
};
struct lpuart_soc_data {
@@ -2422,19 +2423,6 @@ static int lpuart_probe(struct platform_device *pdev)
if (!sport)
return -ENOMEM;
- ret = of_alias_get_id(np, "serial");
- if (ret < 0) {
- ret = ida_simple_get(&fsl_lpuart_ida, 0, UART_NR, GFP_KERNEL);
- if (ret < 0) {
- dev_err(&pdev->dev, "port line is full, add device failed\n");
- return ret;
- }
- }
- if (ret >= ARRAY_SIZE(lpuart_ports)) {
- dev_err(&pdev->dev, "serial%d out of range\n", ret);
- return -EINVAL;
- }
- sport->port.line = ret;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
sport->port.membase = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(sport->port.membase))
@@ -2479,9 +2467,25 @@ static int lpuart_probe(struct platform_device *pdev)
}
}
+ ret = of_alias_get_id(np, "serial");
+ if (ret < 0) {
+ ret = ida_simple_get(&fsl_lpuart_ida, 0, UART_NR, GFP_KERNEL);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "port line is full, add device failed\n");
+ return ret;
+ }
+ sport->id_allocated = true;
+ }
+ if (ret >= ARRAY_SIZE(lpuart_ports)) {
+ dev_err(&pdev->dev, "serial%d out of range\n", ret);
+ ret = -EINVAL;
+ goto failed_out_of_range;
+ }
+ sport->port.line = ret;
+
ret = lpuart_enable_clks(sport);
if (ret)
- return ret;
+ goto failed_clock_enable;
sport->port.uartclk = lpuart_get_baud_clk_rate(sport);
lpuart_ports[sport->port.line] = sport;
@@ -2531,6 +2535,10 @@ static int lpuart_probe(struct platform_device *pdev)
failed_attach_port:
failed_irq_request:
lpuart_disable_clks(sport);
+failed_clock_enable:
+failed_out_of_range:
+ if (sport->id_allocated)
+ ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
return ret;
}
@@ -2540,7 +2548,8 @@ static int lpuart_remove(struct platform_device *pdev)
uart_remove_one_port(&lpuart_reg, &sport->port);
- ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
+ if (sport->id_allocated)
+ ida_simple_remove(&fsl_lpuart_ida, sport->port.line);
lpuart_disable_clks(sport);
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v2] arm64: dts: meson-gxbb-vega-s95: fix bluetooth node
From: Christian Hewitt @ 2020-02-20 17:44 UTC (permalink / raw)
To: Rob Herring, Mark Rutland, Kevin Hilman, devicetree,
linux-arm-kernel, linux-amlogic, linux-kernel
Cc: Christian Hewitt, Oleg Ivanov
This was missed from the previous fix.
Fixes: b07a11dbdfeb ("arm64: dts: meson-gxbb-vega-s95: fix WiFi/BT module support")
Suggested-by: Oleg Ivanov <balbes-150@yandex.ru>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index 5eab3df..45cb836 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -245,6 +245,9 @@
bluetooth {
compatible = "brcm,bcm43438-bt";
shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
+ max-speed = <2000000>;
+ clocks = <&wifi32k>;
+ clock-names = "lpo";
};
};
--
2.7.4
^ permalink raw reply related
* [PATCH v2] arm64: dts: meson-gxbb-vega-s95: fix bluetooth node
From: Christian Hewitt @ 2020-02-20 17:44 UTC (permalink / raw)
To: Rob Herring, Mark Rutland, Kevin Hilman, devicetree,
linux-arm-kernel, linux-amlogic, linux-kernel
Cc: Oleg Ivanov, Christian Hewitt
This was missed from the previous fix.
Fixes: b07a11dbdfeb ("arm64: dts: meson-gxbb-vega-s95: fix WiFi/BT module support")
Suggested-by: Oleg Ivanov <balbes-150@yandex.ru>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index 5eab3df..45cb836 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -245,6 +245,9 @@
bluetooth {
compatible = "brcm,bcm43438-bt";
shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
+ max-speed = <2000000>;
+ clocks = <&wifi32k>;
+ clock-names = "lpo";
};
};
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v2] arm64: dts: meson-gxbb-vega-s95: fix bluetooth node
From: Christian Hewitt @ 2020-02-20 17:44 UTC (permalink / raw)
To: Rob Herring, Mark Rutland, Kevin Hilman, devicetree,
linux-arm-kernel, linux-amlogic, linux-kernel
Cc: Oleg Ivanov, Christian Hewitt
This was missed from the previous fix.
Fixes: b07a11dbdfeb ("arm64: dts: meson-gxbb-vega-s95: fix WiFi/BT module support")
Suggested-by: Oleg Ivanov <balbes-150@yandex.ru>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index 5eab3df..45cb836 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -245,6 +245,9 @@
bluetooth {
compatible = "brcm,bcm43438-bt";
shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
+ max-speed = <2000000>;
+ clocks = <&wifi32k>;
+ clock-names = "lpo";
};
};
--
2.7.4
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related
* Re: [RFC rdma-next] RDMA/core: Add attribute WQ_MEM_RECLAIM to workqueue "infiniband"
From: Alexander Duyck @ 2020-02-20 17:46 UTC (permalink / raw)
To: Yunsheng Lin
Cc: Leon Romanovsky, Jason Gunthorpe, Lang Cheng, Doug Ledford,
David Miller, Salil Mehta, yisen.zhuang, LinuxArm, Netdev,
linux-rdma, Saeed Mahameed, bhaktipriya96, Tejun Heo,
Jeff Kirsher
In-Reply-To: <1155d15f-4188-e5cd-3e4a-6e0c52e9b1eb@huawei.com>
On Tue, Feb 18, 2020 at 11:42 PM Yunsheng Lin <linyunsheng@huawei.com> wrote:
> Ok, I may be wrong about the above usecase.
> but the below commit explicitly state that network devices may be used in
> memory reclaim path.
>
> 0a38c17a21a0 ("fm10k: Remove create_workqueue"):
>
> fm10k: Remove create_workqueue
>
> alloc_workqueue replaces deprecated create_workqueue().
>
> A dedicated workqueue has been used since the workitem (viz
> fm10k_service_task, which manages and runs other subtasks) is involved in
> normal device operation and requires forward progress under memory
> pressure.
>
> create_workqueue has been replaced with alloc_workqueue with max_active
> as 0 since there is no need for throttling the number of active work
> items.
>
> Since network devices may be used in memory reclaim path,
> WQ_MEM_RECLAIM has been set to guarantee forward progress.
>
> flush_workqueue is unnecessary since destroy_workqueue() itself calls
> drain_workqueue() which flushes repeatedly till the workqueue
> becomes empty. Hence the call to flush_workqueue() has been dropped.
>
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
> Acked-by: Tejun Heo <tj@kernel.org>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>
> So:
> 1. Maybe the above commit log is misleading, and network device driver's
> wq does not need the WQ_MEM_RECLAIM flag, then maybe document what can
> not be done in the work queued to wq marked with WQ_MEM_RECLAIM, and
> remove the WQ_MEM_RECLAIM flag for the wq of network device driver.
I am not sure why they added WQ_MEM_RECLAIM to the fm10k service task
thread. It has nothing to do with memory reclaim. If a memory
allocation fails then it will just run to the end and bring the
interface down. The service task is related to dealing with various
one-off events like link up and link down, sorting out hangs, and
updating statistics. The only memory allocation it is involved with is
if it has to reset the interface in which case I believe there may
even be a few GFP_KERNEL calls in there since it is freeing and
reallocating several port related structures.
> 2. If the network device driver's wq does need the WQ_MEM_RECLAIM flag, then
> hns3 may have tow problems here: WQ_MEM_RECLAIM wq flushing !WQ_MEM_RECLAIM
> wq problem and GFP_KERNEL allocations in the work queued to WQ_MEM_RECLAIM wq.
It seems like you could solve this by going the other way and dropping
the WQ_MEM_RECLAIM from the original patch you mentioned in your fixes
tag. I'm not seeing anything in hclge_periodic_service_task that
justifies the use of the WQ_MEM_RECLAIM flag. It claims to be involved
with memory reclaim but I don't see where that could be the case.
- Alex
^ permalink raw reply
* Re: [PATCH 18/19] target/arm: Split VFM decode
From: Peter Maydell @ 2020-02-20 17:45 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
In-Reply-To: <20200214181547.21408-19-richard.henderson@linaro.org>
On Fri, 14 Feb 2020 at 18:16, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Passing the raw o1 and o2 fields from the manual is less
> instructive than it might be. Do the full decode and let
> the trans_* functions pass in booleans to a helper.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> target/arm/vfp.decode | 17 +++++------
> target/arm/translate-vfp.inc.c | 52 ++++++++++++++++++++++++++++++----
> 2 files changed, 55 insertions(+), 14 deletions(-)
>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply
* Re: [PATCH 1/2] rtc: sun6i: Make external 32k oscillator optional
From: Maxime Ripard @ 2020-02-20 17:47 UTC (permalink / raw)
To: Jernej Škrabec
Cc: wens, robh+dt, mark.rutland, a.zummo, alexandre.belloni,
linux-arm-kernel, devicetree, linux-kernel, linux-rtc
In-Reply-To: <5326350.DvuYhMxLoT@jernej-laptop>
[-- Attachment #1: Type: text/plain, Size: 3387 bytes --]
On Fri, Feb 14, 2020 at 05:42:13PM +0100, Jernej Škrabec wrote:
> Hi Maxime,
>
> Dne petek, 14. februar 2020 ob 09:14:43 CET je Maxime Ripard napisal(a):
> > Hi Jernej,
> >
> > Thanks for taking care of this
> >
> > On Thu, Feb 13, 2020 at 10:14:26PM +0100, Jernej Skrabec wrote:
> > > Some boards, like OrangePi PC2 (H5), OrangePi Plus 2E (H3) and Tanix TX6
> > > (H6) don't have external 32kHz oscillator. Till H6, it didn't really
> > > matter if external oscillator was enabled because HW detected error and
> > > fall back to internal one. H6 has same functionality but it's the first
> > > SoC which have "auto switch bypass" bit documented and always enabled in
> > > driver. This prevents RTC to work correctly if external crystal is not
> > > present on board. There are other side effects - all peripherals which
> > > depends on this clock also don't work (HDMI CEC for example).
> > >
> > > Make clocks property optional. If it is present, select external
> > > oscillator. If not, stay on internal.
> > >
> > > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> > > ---
> > >
> > > drivers/rtc/rtc-sun6i.c | 14 ++++++--------
> > > 1 file changed, 6 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> > > index 852f5f3b3592..538cf7e19034 100644
> > > --- a/drivers/rtc/rtc-sun6i.c
> > > +++ b/drivers/rtc/rtc-sun6i.c
> > > @@ -250,19 +250,17 @@ static void __init sun6i_rtc_clk_init(struct
> > > device_node *node,>
> > > writel(reg, rtc->base + SUN6I_LOSC_CTRL);
> > >
> > > }
> > >
> > > - /* Switch to the external, more precise, oscillator */
> > > - reg |= SUN6I_LOSC_CTRL_EXT_OSC;
> > > - if (rtc->data->has_losc_en)
> > > - reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN;
> > > + /* Switch to the external, more precise, oscillator, if present */
> > > + if (of_get_property(node, "clocks", NULL)) {
> > > + reg |= SUN6I_LOSC_CTRL_EXT_OSC;
> > > + if (rtc->data->has_losc_en)
> > > + reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN;
> > > + }
> > >
> > > writel(reg, rtc->base + SUN6I_LOSC_CTRL);
> > >
> > > /* Yes, I know, this is ugly. */
> > > sun6i_rtc = rtc;
> > >
> > > - /* Deal with old DTs */
> > > - if (!of_get_property(node, "clocks", NULL))
> > > - goto err;
> > > -
> >
> > Doesn't that prevent the parents to be properly set if there's an
> > external crystal?
>
> No, why?
>
> Check these two clk_summary:
> http://ix.io/2bHY Tanix TX6 (no external crystal)
> http://ix.io/2bI2 OrangePi 3 (external crystal present)
I was concerned about the "other" parent. In the case where you don't
have a clocks property (so the check that you are removing), the code
then registers a clock with two parents: the one that we create (the
internal oscillator) and the one coming from the clocks property.
clk_summary only shows the current parent, which is going to be right
with your patch, but in the case where you have no clocks property,
you still (attempts to) register two parents, the second one being
non-functional.
Further looking at it, we might be good because we allocate an array
of two clocks, but only register of_clk_get_parent_count(node) + 1
clocks, so 1 if clocks is missing.
Still, I think this should be more obvious, through a comment or
shuffling a bit the parent registration maybe?
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply
* Re: [PATCH 1/2] rtc: sun6i: Make external 32k oscillator optional
From: Maxime Ripard @ 2020-02-20 17:47 UTC (permalink / raw)
To: Jernej Škrabec
Cc: mark.rutland, a.zummo, alexandre.belloni, devicetree,
linux-kernel, wens, robh+dt, linux-arm-kernel, linux-rtc
In-Reply-To: <5326350.DvuYhMxLoT@jernej-laptop>
[-- Attachment #1.1: Type: text/plain, Size: 3387 bytes --]
On Fri, Feb 14, 2020 at 05:42:13PM +0100, Jernej Škrabec wrote:
> Hi Maxime,
>
> Dne petek, 14. februar 2020 ob 09:14:43 CET je Maxime Ripard napisal(a):
> > Hi Jernej,
> >
> > Thanks for taking care of this
> >
> > On Thu, Feb 13, 2020 at 10:14:26PM +0100, Jernej Skrabec wrote:
> > > Some boards, like OrangePi PC2 (H5), OrangePi Plus 2E (H3) and Tanix TX6
> > > (H6) don't have external 32kHz oscillator. Till H6, it didn't really
> > > matter if external oscillator was enabled because HW detected error and
> > > fall back to internal one. H6 has same functionality but it's the first
> > > SoC which have "auto switch bypass" bit documented and always enabled in
> > > driver. This prevents RTC to work correctly if external crystal is not
> > > present on board. There are other side effects - all peripherals which
> > > depends on this clock also don't work (HDMI CEC for example).
> > >
> > > Make clocks property optional. If it is present, select external
> > > oscillator. If not, stay on internal.
> > >
> > > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> > > ---
> > >
> > > drivers/rtc/rtc-sun6i.c | 14 ++++++--------
> > > 1 file changed, 6 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> > > index 852f5f3b3592..538cf7e19034 100644
> > > --- a/drivers/rtc/rtc-sun6i.c
> > > +++ b/drivers/rtc/rtc-sun6i.c
> > > @@ -250,19 +250,17 @@ static void __init sun6i_rtc_clk_init(struct
> > > device_node *node,>
> > > writel(reg, rtc->base + SUN6I_LOSC_CTRL);
> > >
> > > }
> > >
> > > - /* Switch to the external, more precise, oscillator */
> > > - reg |= SUN6I_LOSC_CTRL_EXT_OSC;
> > > - if (rtc->data->has_losc_en)
> > > - reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN;
> > > + /* Switch to the external, more precise, oscillator, if present */
> > > + if (of_get_property(node, "clocks", NULL)) {
> > > + reg |= SUN6I_LOSC_CTRL_EXT_OSC;
> > > + if (rtc->data->has_losc_en)
> > > + reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN;
> > > + }
> > >
> > > writel(reg, rtc->base + SUN6I_LOSC_CTRL);
> > >
> > > /* Yes, I know, this is ugly. */
> > > sun6i_rtc = rtc;
> > >
> > > - /* Deal with old DTs */
> > > - if (!of_get_property(node, "clocks", NULL))
> > > - goto err;
> > > -
> >
> > Doesn't that prevent the parents to be properly set if there's an
> > external crystal?
>
> No, why?
>
> Check these two clk_summary:
> http://ix.io/2bHY Tanix TX6 (no external crystal)
> http://ix.io/2bI2 OrangePi 3 (external crystal present)
I was concerned about the "other" parent. In the case where you don't
have a clocks property (so the check that you are removing), the code
then registers a clock with two parents: the one that we create (the
internal oscillator) and the one coming from the clocks property.
clk_summary only shows the current parent, which is going to be right
with your patch, but in the case where you have no clocks property,
you still (attempts to) register two parents, the second one being
non-functional.
Further looking at it, we might be good because we allocate an array
of two clocks, but only register of_clk_get_parent_count(node) + 1
clocks, so 1 if clocks is missing.
Still, I think this should be more obvious, through a comment or
shuffling a bit the parent registration maybe?
Maxime
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH] net: bcmgenet: Don't set ID_MODE_DIS when not using RGMII
From: Nicolas Saenz Julienne @ 2020-02-20 17:48 UTC (permalink / raw)
To: u-boot
In-Reply-To: <20200220163630.29806-1-nsaenzjulienne@suse.de>
On Thu, 2020-02-20 at 17:36 +0100, Nicolas Saenz Julienne wrote:
> As per Linux's driver, ID_MODE_DIS is only set when the PHY interface is
> RGMII. Don't enable it for the rest of setups.
>
> This has been seen to misconfigure RPi4's PHY when booting Linux.
>
> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
I forgot to add:
Fixes: d53e3fa385 ("net: Add support for Broadcom GENETv5 Ethernet controller")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200220/9d3f1075/attachment-0001.sig>
^ permalink raw reply
* [RFC PATCH 03/10] i2c: mmc: add nexell driver (gpio, i2c, mmc, pwm)
From: Stefan B. @ 2020-02-20 17:49 UTC (permalink / raw)
To: u-boot
In-Reply-To: <1b85e42f-e504-ffed-eebf-1caabe648cfd@denx.de>
Hello Heiko,
see below my feedback, please give me further advise where indicated.
Unfortunately there have been some Bugs in the i2c-driver and I learned
that this driver has not been used at all ("i2c-gpio" has been used
instead). So I have done several Bugfixes and improvements appart from
your proposals.
Regards
Stefan
Am 04.02.20 um 07:58 schrieb Heiko Schocher:
> Hello Stefan,
>
> Am 03.02.2020 um 21:40 schrieb Stefan Bosch:
>> Changes in relation to FriendlyARM's U-Boot nanopi2-v2016.01:
>> - i2c/nx_i2c.c: Some adaptions mainly because of changes in
>> ?? "struct udevice".
>> - mmc: nexell_dw_mmc.c changed to nexell_dw_mmc_dm.c (switched to DM).
>>
>> Signed-off-by: Stefan Bosch <stefan_b@posteo.net>
>> ---
>>
>> ? drivers/gpio/Kconfig?????????? |?? 9 +
>> ? drivers/gpio/Makefile????????? |?? 1 +
>> ? drivers/gpio/nx_gpio.c???????? | 252 +++++++++++++++++++
>> ? drivers/i2c/Kconfig??????????? |?? 9 +
>> ? drivers/i2c/Makefile?????????? |?? 1 +
>> ? drivers/i2c/nx_i2c.c?????????? | 537
>> +++++++++++++++++++++++++++++++++++++++++
>> ? drivers/mmc/Kconfig??????????? |?? 6 +
>> ? drivers/mmc/Makefile?????????? |?? 1 +
>> ? drivers/mmc/nexell_dw_mmc_dm.c | 350 +++++++++++++++++++++++++++
>> ? drivers/pwm/Makefile?????????? |?? 1 +
>> ? drivers/pwm/pwm-nexell.c?????? | 252 +++++++++++++++++++
>> ? drivers/pwm/pwm-nexell.h?????? |? 54 +++++
>
> Could you please split this patch into 4 parts (i2c, gpio, mmc and
> pwm) ?
>
> Thanks!
>
Ok, I will split this patch.
>> ? 12 files changed, 1473 insertions(+)
>> ? create mode 100644 drivers/gpio/nx_gpio.c
>> ? create mode 100644 drivers/i2c/nx_i2c.c
>> ? create mode 100644 drivers/mmc/nexell_dw_mmc_dm.c
>> ? create mode 100644 drivers/pwm/pwm-nexell.c
>> ? create mode 100644 drivers/pwm/pwm-nexell.h
>>
> [...]
>> diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
>> index 449046b..e3340de 100644
>> --- a/drivers/gpio/Makefile
>> +++ b/drivers/gpio/Makefile
>> @@ -65,3 +65,4 @@ obj-$(CONFIG_PM8916_GPIO)??? += pm8916_gpio.o
>> ? obj-$(CONFIG_MT7621_GPIO)??? += mt7621_gpio.o
>> ? obj-$(CONFIG_MSCC_SGPIO)??? += mscc_sgpio.o
>> ? obj-$(CONFIG_SIFIVE_GPIO)??? += sifive-gpio.o
>> +obj-$(CONFIG_NX_GPIO)??????? += nx_gpio.o
>
> Please keep lists sorted.
The list is not sorted (at least in no alphabetical order), but I can
e.g. move "... += nx_gpio.o" one line up?
>
>> diff --git a/drivers/gpio/nx_gpio.c b/drivers/gpio/nx_gpio.c
>> new file mode 100644
>> index 0000000..86472f6
>> --- /dev/null
>> +++ b/drivers/gpio/nx_gpio.c
>> @@ -0,0 +1,252 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * (C) Copyright 2016 Nexell
>> + * DeokJin, Lee <truevirtue@nexell.co.kr>
>> + */
>> +
>> +#include <common.h>
>> +#include <dm.h>
>> +#include <errno.h>
>> +#include <malloc.h>
>> +#include <fdtdec.h>
>> +#include <asm/io.h>
>> +#include <asm/gpio.h>
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +struct nx_gpio_regs {
>> +??? u32??? data;??????? /* Data register */
>> +??? u32??? outputenb;??? /* Output Enable register */
>> +??? u32??? detmode[2];??? /* Detect Mode Register */
>> +??? u32??? intenb;??????? /* Interrupt Enable Register */
>> +??? u32??? det;??????? /* Event Detect Register */
>> +??? u32??? pad;??????? /* Pad Status Register */
>> +};
>> +
>> +struct nx_alive_gpio_regs {
>> +??? u32??? pwrgate;??? /* Power Gating Register */
>> +??? u32??? reserved0[28];??? /* Reserved0 */
>> +??? u32??? outputenb_reset;/* Alive GPIO Output Enable Reset Register */
>> +??? u32??? outputenb;??? /* Alive GPIO Output Enable Register */
>> +??? u32??? outputenb_read; /* Alive GPIO Output Read Register */
>> +??? u32??? reserved1[3];??? /* Reserved1 */
>> +??? u32??? pad_reset;??? /* Alive GPIO Output Reset Register */
>> +??? u32??? data;??????? /* Alive GPIO Output Register */
>> +??? u32??? pad_read;??? /* Alive GPIO Pad Read Register */
>> +??? u32??? reserved2[33];??? /* Reserved2 */
>> +??? u32??? pad;??????? /* Alive GPIO Input Value Register */
>> +};
>> +
>> +struct nx_gpio_platdata {
>> +??? void *regs;
>> +??? int gpio_count;
>> +??? const char *bank_name;
>> +};
>> +
>> +static int nx_alive_gpio_is_check(struct udevice *dev)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? const char *bank_name = plat->bank_name;
>> +
>> +??? if (!strcmp(bank_name, "gpio_alv"))
>> +??????? return 1;
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_alive_gpio_direction_input(struct udevice *dev,
>> unsigned int pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_alive_gpio_regs *const regs = plat->regs;
>> +
>> +??? setbits_le32(®s->outputenb_reset, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_alive_gpio_direction_output(struct udevice *dev,
>> unsigned int pin,
>> +????????????????????? int val)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_alive_gpio_regs *const regs = plat->regs;
>> +
>> +??? if (val)
>> +??????? setbits_le32(®s->data, 1 << pin);
>> +??? else
>> +??????? setbits_le32(®s->pad_reset, 1 << pin);
>> +
>> +??? setbits_le32(®s->outputenb, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_alive_gpio_get_value(struct udevice *dev, unsigned int
>> pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_alive_gpio_regs *const regs = plat->regs;
>> +??? unsigned int mask = 1UL << pin;
>> +??? unsigned int value;
>> +
>> +??? value = (readl(®s->pad_read) & mask) >> pin;
>> +
>> +??? return value;
>> +}
>> +
>> +static int nx_alive_gpio_set_value(struct udevice *dev, unsigned int
>> pin,
>> +?????????????????? int val)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_alive_gpio_regs *const regs = plat->regs;
>> +
>> +??? if (val)
>> +??????? setbits_le32(®s->data, 1 << pin);
>> +??? else
>> +??????? clrbits_le32(®s->pad_reset, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_alive_gpio_get_function(struct udevice *dev, unsigned
>> int pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_alive_gpio_regs *const regs = plat->regs;
>> +??? unsigned int mask = (1UL << pin);
>> +??? unsigned int output;
>> +
>> +??? output = readl(®s->outputenb_read) & mask;
>> +
>> +??? if (output)
>> +??????? return GPIOF_OUTPUT;
>> +??? else
>> +??????? return GPIOF_INPUT;
>> +}
>> +
>> +static int nx_gpio_direction_input(struct udevice *dev, unsigned int
>> pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_gpio_regs *const regs = plat->regs;
>> +
>> +??? if (nx_alive_gpio_is_check(dev))
>> +??????? return nx_alive_gpio_direction_input(dev, pin);
>> +
>> +??? clrbits_le32(®s->outputenb, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_gpio_direction_output(struct udevice *dev, unsigned int
>> pin,
>> +??????????????????? int val)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_gpio_regs *const regs = plat->regs;
>> +
>> +??? if (nx_alive_gpio_is_check(dev))
>> +??????? return nx_alive_gpio_direction_output(dev, pin, val);
>> +
>> +??? if (val)
>> +??????? setbits_le32(®s->data, 1 << pin);
>> +??? else
>> +??????? clrbits_le32(®s->data, 1 << pin);
>> +
>> +??? setbits_le32(®s->outputenb, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_gpio_get_value(struct udevice *dev, unsigned int pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_gpio_regs *const regs = plat->regs;
>> +??? unsigned int mask = 1UL << pin;
>> +??? unsigned int value;
>> +
>> +??? if (nx_alive_gpio_is_check(dev))
>> +??????? return nx_alive_gpio_get_value(dev, pin);
>> +
>> +??? value = (readl(®s->pad) & mask) >> pin;
>> +
>> +??? return value;
>> +}
>> +
>> +static int nx_gpio_set_value(struct udevice *dev, unsigned int pin,
>> int val)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_gpio_regs *const regs = plat->regs;
>> +
>> +??? if (nx_alive_gpio_is_check(dev))
>> +??????? return nx_alive_gpio_set_value(dev, pin, val);
>> +
>> +??? if (val)
>> +??????? setbits_le32(®s->data, 1 << pin);
>> +??? else
>> +??????? clrbits_le32(®s->data, 1 << pin);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_gpio_get_function(struct udevice *dev, unsigned int pin)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +??? struct nx_gpio_regs *const regs = plat->regs;
>> +??? unsigned int mask = (1UL << pin);
>> +??? unsigned int output;
>> +
>> +??? if (nx_alive_gpio_is_check(dev))
>> +??????? return nx_alive_gpio_get_function(dev, pin);
>> +
>> +??? output = readl(®s->outputenb) & mask;
>> +
>> +??? if (output)
>> +??????? return GPIOF_OUTPUT;
>> +??? else
>> +??????? return GPIOF_INPUT;
>> +}
>> +
>> +static int nx_gpio_probe(struct udevice *dev)
>> +{
>> +??? struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +
>> +??? uc_priv->gpio_count = plat->gpio_count;
>> +??? uc_priv->bank_name = plat->bank_name;
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_gpio_ofdata_to_platdata(struct udevice *dev)
>> +{
>> +??? struct nx_gpio_platdata *plat = dev_get_platdata(dev);
>> +
>> +??? plat->regs = map_physmem(devfdt_get_addr(dev),
>> +???????????????? sizeof(struct nx_gpio_regs),
>> +???????????????? MAP_NOCACHE);
>> +??? plat->gpio_count = fdtdec_get_int(gd->fdt_blob, dev->node.of_offset,
>> +????????????????????? "nexell,gpio-bank-width", 32);
>> +??? plat->bank_name = fdt_getprop(gd->fdt_blob, dev->node.of_offset,
>> +????????????????????? "gpio-bank-name", NULL);
>> +
>> +??? return 0;
>> +}
>> +
>> +static const struct dm_gpio_ops nx_gpio_ops = {
>> +??? .direction_input??? = nx_gpio_direction_input,
>> +??? .direction_output??? = nx_gpio_direction_output,
>> +??? .get_value??????? = nx_gpio_get_value,
>> +??? .set_value??????? = nx_gpio_set_value,
>> +??? .get_function??????? = nx_gpio_get_function,
>> +};
>> +
>> +static const struct udevice_id nx_gpio_ids[] = {
>> +??? { .compatible = "nexell,nexell-gpio" },
>> +??? { }
>> +};
>> +
>> +U_BOOT_DRIVER(nx_gpio) = {
>> +??? .name??????? = "nx_gpio",
>> +??? .id??????? = UCLASS_GPIO,
>> +??? .of_match??? = nx_gpio_ids,
>> +??? .ops??????? = &nx_gpio_ops,
>> +??? .ofdata_to_platdata = nx_gpio_ofdata_to_platdata,
>> +??? .platdata_auto_alloc_size = sizeof(struct nx_gpio_platdata),
>> +??? .probe??????? = nx_gpio_probe,
>> +};
>> diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
>> index 03d2fed..2cd0ed3 100644
>> --- a/drivers/i2c/Kconfig
>> +++ b/drivers/i2c/Kconfig
>> @@ -317,6 +317,15 @@ config SYS_MXC_I2C8_SLAVE
>> ?????? MXC I2C8 Slave
>> ? endif
>> +config SYS_I2C_NEXELL
>> +??? bool "Nexell I2C driver"
>> +??? depends on DM_I2C
>> +??? help
>> +????? Add support for the Nexell I2C driver. This is used with various
>> +????? Nexell parts such as S5Pxx18 series SoCs. All chips
>> +????? have several I2C ports and all are provided, controlled by the
>> +????? device tree.
>> +
>> ? config SYS_I2C_OMAP24XX
>> ????? bool "TI OMAP2+ I2C driver"
>> ????? depends on ARCH_OMAP2PLUS || ARCH_K3
>> diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile
>> index f5a471f..64b8ead 100644
>> --- a/drivers/i2c/Makefile
>> +++ b/drivers/i2c/Makefile
>> @@ -26,6 +26,7 @@ obj-$(CONFIG_SYS_I2C_LPC32XX) += lpc32xx_i2c.o
>> ? obj-$(CONFIG_SYS_I2C_MESON) += meson_i2c.o
>> ? obj-$(CONFIG_SYS_I2C_MVTWSI) += mvtwsi.o
>> ? obj-$(CONFIG_SYS_I2C_MXC) += mxc_i2c.o
>> +obj-$(CONFIG_SYS_I2C_NEXELL) += nx_i2c.o
>> ? obj-$(CONFIG_SYS_I2C_OMAP24XX) += omap24xx_i2c.o
>> ? obj-$(CONFIG_SYS_I2C_RCAR_I2C) += rcar_i2c.o
>> ? obj-$(CONFIG_SYS_I2C_RCAR_IIC) += rcar_iic.o
>> diff --git a/drivers/i2c/nx_i2c.c b/drivers/i2c/nx_i2c.c
>> new file mode 100644
>> index 0000000..a3eec6c
>> --- /dev/null
>> +++ b/drivers/i2c/nx_i2c.c
>> @@ -0,0 +1,537 @@
>> +#include <common.h>
>> +#include <errno.h>
>> +#include <dm.h>
>> +#include <i2c.h>
>> +#include <asm/arch/nexell.h>
>> +#include <asm/arch/reset.h>
>> +#include <asm/arch/clk.h>
>> +#include <asm/arch/nx_gpio.h>
>> +
>> +#define I2C_WRITE?????? 0
>> +#define I2C_READ??????? 1
>> +
>> +#define I2C_OK????????? 0
>> +#define I2C_NOK???????? 1
>> +#define I2C_NACK??????? 2
>> +#define I2C_NOK_LA????? 3?????? /* Lost arbitration */
>> +#define I2C_NOK_TOUT??? 4?????? /* time out */
>> +
>> +#define I2CLC_FILTER??? 0x04??? /* SDA filter on*/
>> +#define I2CSTAT_BSY???? 0x20??? /* Busy bit */
>> +#define I2CSTAT_NACK??? 0x01??? /* Nack bit */
>> +#define I2CSTAT_ABT??? 0x08??? /* Arbitration bit */
>> +#define I2CCON_ACKGEN?? 0x80??? /* Acknowledge generation */
>> +#define I2CCON_IRENB??? 0x20??? /* Interrupt Enable bit? */
>> +#define I2CCON_IRPND??? 0x10??? /* Interrupt pending bit */
>> +#define I2C_MODE_MT???? 0xC0??? /* Master Transmit Mode */
>> +#define I2C_MODE_MR???? 0x80??? /* Master Receive Mode */
>> +#define I2C_START_STOP? 0x20??? /* START / STOP */
>> +#define I2C_TXRX_ENA??? 0x10??? /* I2C Tx/Rx enable */
>> +
>> +#define I2C_TIMEOUT_MS??? 10????? /* 10 ms */
>> +
>> +#define I2C_M_NOSTOP??? 0x100
>> +
>> +#ifndef CONFIG_MAX_I2C_NUM
>> +#define CONFIG_MAX_I2C_NUM 3
>> +#endif
>
> Is this really configurable? If so, I do not find the Kconfig
> description.
No, it is not configurable. I have changed it to MAX_I2C_NUM.
>
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +struct nx_i2c_regs {
>> +??? uint???? iiccon;
>> +??? uint???? iicstat;
>> +??? uint???? iicadd;
>> +??? uint???? iicds;
>> +??? uint???? iiclc;
>> +};
>> +
>> +struct nx_i2c_bus {
>> +??? uint bus_num;
>> +??? struct nx_i2c_regs *regs;
>> +??? uint speed;
>> +??? uint target_speed;
>> +??? uint sda_delay;
>> +};
>> +
>> +/* s5pxx18 i2c must be reset before enabled */
>> +static void i2c_reset(int ch)
>> +{
>> +??? int rst_id = RESET_ID_I2C0 + ch;
>> +
>> +??? nx_rstcon_setrst(rst_id, 0);
>> +??? nx_rstcon_setrst(rst_id, 1);
>> +}
>> +
>> +/* FIXME : this func will be removed after reset dm driver ported.
>> + * set mmc pad alternative func.
>> + */
>> +static void set_i2c_pad_func(struct nx_i2c_bus *i2c)
>> +{
>> +??? switch (i2c->bus_num) {
>> +??? case 0:
>> +??????? nx_gpio_set_pad_function(3, 2, 1);
>> +??????? nx_gpio_set_pad_function(3, 3, 1);
>> +??????? break;
>> +??? case 1:
>> +??????? nx_gpio_set_pad_function(3, 4, 1);
>> +??????? nx_gpio_set_pad_function(3, 5, 1);
>> +??????? break;
>> +??? case 2:
>> +??????? nx_gpio_set_pad_function(3, 6, 1);
>> +??????? nx_gpio_set_pad_function(3, 7, 1);
>> +??????? break;
>> +??? }
>> +}
>
> Hmm... may this should be moved into a seperate pincontrol driver?
According to the above FIXME comment from Nexell it probably should. But
there is no pincontrol driver implemented. But is the change to a driver
necessary for now?
>
>> +
>> +static uint i2c_get_clkrate(struct nx_i2c_bus *bus)
>> +{
>> +??? struct clk *clk;
>> +??? int index = bus->bus_num;
>> +??? char name[50] = {0, };
>
> ?
>
>> +
>> +??? sprintf(name, "%s.%d", DEV_NAME_I2C, index);
>
> Where is DEV_NAME_I2C defined ?
DEV_NAME_I2C is defined in arch/arm/mach-nexell/include/mach/nexell.h
>
>> +??? clk = clk_get((const char *)name);
>> +??? if (!clk)
>> +??????? return -1;
>> +
>> +??? return clk_get_rate(clk);
>> +}
>> +
>> +static uint i2c_set_clk(struct nx_i2c_bus *bus, uint enb)
>> +{
>> +??? struct clk *clk;
>> +??? char name[50];
>> +
>> +??? sprintf(name, "%s.%d", DEV_NAME_I2C, bus->bus_num);
>> +??? clk = clk_get((const char *)name);
>> +??? if (!clk)
>> +??????? return -1;
>> +
>> +??? if (enb) {
>> +??????? clk_disable(clk);
>> +??????? clk_enable(clk);
>> +??? } else {
>> +??????? clk_disable(clk);
>> +??? }
>> +
>> +??? return 0;
>> +}
>> +
>> +/* get i2c module number from base address */
>> +static uint i2c_get_busnum(struct nx_i2c_bus *bus)
>> +{
>> +??? void *base_addr = (void *)PHY_BASEADDR_I2C0;
>> +??? int i;
>> +
>> +??? for (i = 0; i < CONFIG_MAX_I2C_NUM; i++) {
>> +??????? if (base_addr == ((void *)bus->regs)) {
>> +??????????? bus->bus_num = i;
>> +??????????? return i;
>> +??????? }
>> +??????? base_addr += 0x1000;
>> +??? }
>> +
>> +??? return -1;
>
> return -ENODEV;
>
> Hmm... is there no chance to use seq from struct udevice
>
> https://gitlab.denx.de/u-boot/u-boot/blob/master/include/dm/device.h#L152
>
> ?
>
> For example like:
> https://gitlab.denx.de/u-boot/u-boot/blob/master/drivers/i2c/mxc_i2c.c#L895
>
Ok, I have changed this as proposed.
>> +}
>> +
>> +/* Set SDA line delay */
>> +static int nx_i2c_set_sda_delay(struct nx_i2c_bus *bus, ulong clkin)
>> +{
>> +??? struct nx_i2c_regs *i2c = bus->regs;
>> +??? uint sda_delay = 0;
>> +
>> +??? if (bus->sda_delay) {
>> +??????? sda_delay = clkin * bus->sda_delay;
>> +??????? sda_delay = DIV_ROUND_UP(sda_delay, 1000000);
>> +??????? sda_delay = DIV_ROUND_UP(sda_delay, 5);
>> +??????? if (sda_delay > 3)
>> +??????????? sda_delay = 3;
>> +??????? sda_delay |= I2CLC_FILTER;
>> +??? } else {
>> +??????? sda_delay = 0;
>> +??? }
>> +
>> +??? sda_delay &= 0x7;
>> +??? writel(sda_delay, &i2c->iiclc);
>> +
>> +??? return 0;
>> +}
>> +
>> +/* Calculate the value of the divider and prescaler, set the bus
>> speed. */
>> +static int nx_i2c_set_bus_speed(struct udevice *dev, uint speed)
>> +{
>> +??? struct nx_i2c_bus *bus = dev_get_priv(dev);
>> +??? struct nx_i2c_regs *i2c = bus->regs;
>> +??? unsigned long freq, pres = 16, div;
>> +
>> +??? freq = i2c_get_clkrate(bus);
>> +??? /* calculate prescaler and divisor values */
>> +??? if ((freq / pres / (16 + 1)) > speed)
>> +??????? /* set prescaler to 512 */
>> +??????? pres = 512;
>> +
>> +??? div = 0;
>> +??? while ((freq / pres / (div + 1)) > speed)
>> +??????? div++;
>> +
>> +??? /* set prescaler, divisor according to freq, also set ACKGEN, IRQ */
>> +??? writel((div & 0x0F) | ((pres == 512) ? 0x40 : 0), &i2c->iiccon);
>> +
>> +??? /* init to SLAVE REVEIVE and set slaveaddr */
>> +??? writel(0, &i2c->iicstat);
>> +??? writel(0x00, &i2c->iicadd);
>> +??? /* program Master Transmit (and implicit STOP) */
>> +??? writel(I2C_MODE_MT | I2C_TXRX_ENA, &i2c->iicstat);
>> +
>> +??? bus->speed = bus->target_speed / (div * pres);
>
> Do you want to allow all values of speeds or may you want to use
> standard speeds, see:
>
> https://gitlab.denx.de/u-boot/u-boot/blob/master/include/i2c.h#L33
>
I'd like to allow all values of speed. In my opinion allowing only
standard speeds does complicate things (e.g. how to do error handling?).
Furthermore I think sometimes it could be handy to be able to set speed
to an arbitrary value (e.g. to a lower value than 100000) when trying a
new i2c-device on the bus.
>> +
>> +??? return 0;
>> +}
>> +
>> +static void nx_i2c_set_clockrate(struct udevice *dev, uint speed)
>> +{
>> +??? struct nx_i2c_bus *bus = dev_get_priv(dev);
>> +??? ulong clkin;
>> +
>> +??? nx_i2c_set_bus_speed(dev, speed);
>> +??? clkin = bus->speed;??????????? /* the actual i2c speed */
>> +??? clkin /= 1000;??????????????? /* clkin now in Khz */
>> +??? nx_i2c_set_sda_delay(bus, clkin);
>> +}
>> +
>> +static void i2c_process_node(struct udevice *dev)
>> +{
>> +??? struct nx_i2c_bus *bus = dev_get_priv(dev);
>> +??? const void *blob = gd->fdt_blob;
>> +
>> +??? int node;
>> +
>> +??? node = dev->node.of_offset;
>> +
>> +??? bus->target_speed = fdtdec_get_int(blob, node,
>> +?????????????????????? "nexell,i2c-max-bus-freq", 0);
>> +??? bus->sda_delay = fdtdec_get_int(blob, node,
>> +??????????????????? "nexell,i2c-sda-delay", 0);
>
> You introdue here new properties, please document them in
> u-boot:/doc/device-tree-bindings/i2c
>
> Please without "nexell,"
>
I have changed "nexell,i2c-max-bus-freq" to the already defined
"clock-frequency". Furthermore I have changed "nexell,i2c-sda-delay" to
"i2c-sda-delay-ns".
Furthermore, I have added "nx_i2c.txt" in doc/device-tree-bindings/i2c.
> Do you plan to post also a linux i2c driver?
>
> If so, the devicetree bindings should be discussed there to avoid
> different properties between U-Boot and linux!
>
No, I do not plan to post a linux driver.
>> +}
>> +
>> +static int nx_i2c_probe(struct udevice *dev)
>> +{
>> +??? struct nx_i2c_bus *bus = dev_get_priv(dev);
>> +
>> +??? /* get regs */
>> +??? bus->regs = (struct nx_i2c_regs *)devfdt_get_addr(dev);
>> +??? /* calc index */
>> +??? if (!i2c_get_busnum(bus)) {
>> +??????? debug("not found i2c number!\n");
>> +??????? return -1;
>
> please return -ENODEV
>
Ok
>> +??? }
>> +
>> +??? /* i2c optional node parsing */
>> +??? i2c_process_node(dev);
>> +??? if (!bus->target_speed)
>> +??????? return -1;
>
> please return here also an errorcode from include/linux/errno.h
>
Ok
> Hmm.. if you return here if target_speed is not set, it is not optional!
>
You are right, I have removed 'optional' in the comment.
>> +
>> +??? /* reset */
>> +??? i2c_reset(bus->bus_num);
>> +??? /* gpio pad */
>> +??? set_i2c_pad_func(bus);
>> +
>> +??? /* clock rate */
>> +??? i2c_set_clk(bus, 1);
>> +??? nx_i2c_set_clockrate(dev, bus->target_speed);
>> +??? i2c_set_clk(bus, 0);
>> +
>> +??? return 0;
>> +}
>> +
>> +/* i2c bus busy check */
>> +static int i2c_is_busy(struct nx_i2c_regs *i2c)
>> +{
>> +??? ulong start_time;
>> +
>> +??? start_time = get_timer(0);
>> +??? while (readl(&i2c->iicstat) & I2CSTAT_BSY) {
>> +??????? if (get_timer(start_time) > I2C_TIMEOUT_MS) {
>> +??????????? debug("Timeout\n");
>> +??????????? return -I2C_NOK_TOUT;
>> +??????? }
>> +??? }
>> +??? return 0;
>> +}
>> +
>> +/* irq enable/disable functions */
>> +static void i2c_enable_irq(struct nx_i2c_regs *i2c)
>> +{
>> +??? unsigned int reg;
>> +
>> +??? reg = readl(&i2c->iiccon);
>> +??? reg |= I2CCON_IRENB;
>> +??? writel(reg, &i2c->iiccon);
>> +}
>> +
>> +/* irq clear function */
>> +static void i2c_clear_irq(struct nx_i2c_regs *i2c)
>> +{
>> +??? clrbits_le32(&i2c->iiccon, I2CCON_IRPND);
>> +}
>> +
>> +/* ack enable functions */
>> +static void i2c_enable_ack(struct nx_i2c_regs *i2c)
>> +{
>> +??? unsigned int reg;
>> +
>> +??? reg = readl(&i2c->iiccon);
>> +??? reg |= I2CCON_ACKGEN;
>> +??? writel(reg, &i2c->iiccon);
>> +}
>> +
>> +static void i2c_send_stop(struct nx_i2c_regs *i2c)
>> +{
>> +??? unsigned int reg;
>> +
>> +??? /* Send STOP. */
>> +??? reg = readl(&i2c->iicstat);
>> +??? reg |= I2C_MODE_MR | I2C_TXRX_ENA;
>> +??? reg &= (~I2C_START_STOP);
>> +??? writel(reg, &i2c->iicstat);
>> +??? i2c_clear_irq(i2c);
>> +}
>> +
>> +static int wait_for_xfer(struct nx_i2c_regs *i2c)
>> +{
>> +??? unsigned long start_time = get_timer(0);
>> +
>> +??? do {
>> +??????? if (readl(&i2c->iiccon) & I2CCON_IRPND)
>> +??????????? return (readl(&i2c->iicstat) & I2CSTAT_NACK) ?
>> +??????????????? I2C_NACK : I2C_OK;
>> +??? } while (get_timer(start_time) < I2C_TIMEOUT_MS);
>> +
>> +??? return I2C_NOK_TOUT;
>> +}
>> +
>> +static int i2c_transfer(struct nx_i2c_regs *i2c,
>> +??????????? uchar cmd_type,
>> +??????????? uchar chip,
>> +??????????? uchar addr[],
>> +??????????? uchar addr_len,
>> +??????????? uchar data[],
>> +??????????? unsigned short data_len,
>> +??????????? uint seq)
>> +{
>> +??? uint status;
>> +??? int i = 0, result;
>> +
>> +??? if (data == 0 || data_len == 0) {
>> +??????? /*Don't support data transfer of no length or to address 0 */
>> +??????? debug("%s: bad call\n", __func__);
>> +??????? return I2C_NOK;
>> +??? }
>> +
>> +??? i2c_enable_irq(i2c);
>> +??? i2c_enable_ack(i2c);
>> +
>> +??? /* Get the slave chip address going */
>> +??? writel(chip, &i2c->iicds);
>> +??? status = I2C_TXRX_ENA | I2C_START_STOP;
>> +??? if (cmd_type == I2C_WRITE || (addr && addr_len))
>> +??????? status |= I2C_MODE_MT;
>> +??? else
>> +??????? status |= I2C_MODE_MR;
>> +??? writel(status, &i2c->iicstat);
>> +??? if (seq)
>> +??????? i2c_clear_irq(i2c);
>> +
>> +??? /* Wait for chip address to transmit. */
>> +??? result = wait_for_xfer(i2c);
>> +??? if (result != I2C_OK)
>> +??????? goto bailout;
>> +
>> +??? /* If register address needs to be transmitted - do it now. */
>> +??? if (addr && addr_len) {? /* register addr */
>> +??????? while ((i < addr_len) && (result == I2C_OK)) {
>> +??????????? writel(addr[i++], &i2c->iicds);
>> +??????????? i2c_clear_irq(i2c);
>> +??????????? result = wait_for_xfer(i2c);
>> +??????? }
>> +
>> +??????? i = 0;
>> +??????? if (result != I2C_OK)
>> +??????????? goto bailout;
>> +??? }
>> +
>> +??? switch (cmd_type) {
>> +??? case I2C_WRITE:
>> +??????? while ((i < data_len) && (result == I2C_OK)) {
>> +??????????? writel(data[i++], &i2c->iicds);
>> +??????????? i2c_clear_irq(i2c);
>> +??????????? result = wait_for_xfer(i2c);
>> +??????? }
>> +??????? break;
>> +??? case I2C_READ:
>> +??????? if (addr && addr_len) {
>> +??????????? /*
>> +???????????? * Register address has been sent, now send slave chip
>> +???????????? * address again to start the actual read transaction.
>> +???????????? */
>> +??????????? writel(chip, &i2c->iicds);
>> +
>> +??????????? /* Generate a re-START. */
>> +??????????? writel(I2C_MODE_MR | I2C_TXRX_ENA
>> +??????????????????? | I2C_START_STOP, &i2c->iicstat);
>> +??????????? i2c_clear_irq(i2c);
>> +??????????? result = wait_for_xfer(i2c);
>> +??????????? if (result != I2C_OK)
>> +??????????????? goto bailout;
>> +??????? }
>> +
>> +??????? while ((i < data_len) && (result == I2C_OK)) {
>> +??????????? /* disable ACK for final READ */
>> +??????????? if (i == data_len - 1)
>> +??????????????? clrbits_le32(&i2c->iiccon
>> +??????????????????????? , I2CCON_ACKGEN);
>> +
>> +??????????? i2c_clear_irq(i2c);
>> +??????????? result = wait_for_xfer(i2c);
>> +??????????? data[i++] = readb(&i2c->iicds);
>> +??????? }
>> +
>> +??????? if (result == I2C_NACK)
>> +??????????? result = I2C_OK; /* Normal terminated read. */
>> +??????? break;
>> +
>> +??? default:
>> +??????? debug("%s: bad call\n", __func__);
>> +??????? result = I2C_NOK;
>> +??????? break;
>> +??? }
>> +
>> +bailout:
>> +??? return result;
>> +}
>> +
>> +static int nx_i2c_read(struct udevice *dev, uchar chip, uint addr,
>> +?????????????? uint alen, uchar *buffer, uint len, uint seq)
>> +{
>> +??? struct nx_i2c_bus *i2c;
>> +??? uchar xaddr[4];
>> +??? int ret;
>> +
>> +??? i2c = dev_get_priv(dev);
>> +??? if (!i2c)
>> +??????? return -EFAULT;
>> +
>> +??? if (alen > 4) {
>> +??????? debug("I2C read: addr len %d not supported\n", alen);
>> +??????? return -EADDRNOTAVAIL;
>> +??? }
>> +
>> +??? if (alen > 0)
>> +??????? xaddr[0] = (addr >> 24) & 0xFF;
>> +
>> +??? if (alen > 0) {
>> +??????? xaddr[0] = (addr >> 24) & 0xFF;
>> +??????? xaddr[1] = (addr >> 16) & 0xFF;
>> +??????? xaddr[2] = (addr >> 8) & 0xFF;
>> +??????? xaddr[3] = addr & 0xFF;
>> +??? }
>> +
>> +??? ret = i2c_transfer(i2c->regs, I2C_READ, chip << 1,
>> +?????????????? &xaddr[4 - alen], alen, buffer, len, seq);
>> +
>> +??? if (ret) {
>> +??????? debug("I2C read failed %d\n", ret);
>> +??????? return -EIO;
>> +??? }
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_i2c_write(struct udevice *dev, uchar chip, uint addr,
>> +??????????? uint alen, uchar *buffer, uint len, uint seq)
>> +{
>> +??? struct nx_i2c_bus *i2c;
>> +??? uchar xaddr[4];
>> +??? int ret;
>> +
>> +??? i2c = dev_get_priv(dev);
>> +??? if (!i2c)
>> +??????? return -EFAULT;
>> +
>> +??? if (alen > 4) {
>> +??????? debug("I2C write: addr len %d not supported\n", alen);
>> +??????? return -EINVAL;
>> +??? }
>> +
>> +??? if (alen > 0) {
>> +??????? xaddr[0] = (addr >> 24) & 0xFF;
>> +??????? xaddr[1] = (addr >> 16) & 0xFF;
>> +??????? xaddr[2] = (addr >> 8) & 0xFF;
>> +??????? xaddr[3] = addr & 0xFF;
>> +??? }
>> +
>> +??? ret = i2c_transfer(i2c->regs, I2C_WRITE, chip << 1,
>> +?????????????? &xaddr[4 - alen], alen, buffer, len, seq);
>> +??? if (ret) {
>> +??????? debug("I2C write failed %d\n", ret);
>> +??????? return -EIO;
>> +??? }
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nx_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, int
>> nmsgs)
>> +{
>> +??? struct nx_i2c_bus *bus = dev_get_priv(dev);
>> +??? struct nx_i2c_regs *i2c = bus->regs;
>> +??? int ret;
>> +??? int i;
>> +
>> +??? /* The power loss by the clock, only during on/off. */
>> +??? i2c_set_clk(bus, 1);
>> +
>> +??? /* Bus State(Busy) check? */
>> +??? ret = i2c_is_busy(i2c);
>> +??? if (ret < 0)
>> +??????? return ret;
>> +
>> +??? for (i = 0; i < nmsgs; msg++, i++) {
>> +??????? if (msg->flags & I2C_M_RD) {
>> +??????????? ret = nx_i2c_read(dev, msg->addr, 0, 0, msg->buf,
>> +????????????????????? msg->len, i);
>> +??????? } else {
>> +??????????? ret = nx_i2c_write(dev, msg->addr, 0, 0, msg->buf,
>> +?????????????????????? msg->len, i);
>> +??????? }
>> +
>> +??????? if (ret) {
>> +??????????? debug("i2c_xfer: error sending\n");
>> +??????????? return -EREMOTEIO;
>> +??????? }
>> +??? }
>> +??? /* Send Stop */
>> +??? i2c_send_stop(i2c);
>> +??? i2c_set_clk(bus, 0);
>> +
>> +??? return ret ? -EREMOTEIO : 0;
>> +};
>> +
>> +static const struct dm_i2c_ops nx_i2c_ops = {
>> +??? .xfer??????? = nx_i2c_xfer,
>> +??? .set_bus_speed??? = nx_i2c_set_bus_speed,
>> +};
>> +
>> +static const struct udevice_id nx_i2c_ids[] = {
>> +??? { .compatible = "nexell,s5pxx18-i2c" },
>
> Same here as for the new properties. Please discuss the names on
>
> devicetree at vger.kernel.org <devicetree@vger.kernel.org>
>
> first!
>
>> +??? { }
>> +};
>> +
>> +U_BOOT_DRIVER(i2c_nexell) = {
>> +??? .name??????? = "i2c_nexell",
>> +??? .id??????? = UCLASS_I2C,
>> +??? .of_match??? = nx_i2c_ids,
>> +??? .probe??????? = nx_i2c_probe,
>> +??? .priv_auto_alloc_size??? = sizeof(struct nx_i2c_bus),
>> +??? .ops??????? = &nx_i2c_ops,
>> +};
>
> bye,
> Heiko
>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
>> index 2f0eedc..bb8e7c0 100644
>> --- a/drivers/mmc/Kconfig
>> +++ b/drivers/mmc/Kconfig
>> @@ -253,6 +253,12 @@ config MMC_DW_SNPS
>> ??????? This selects support for Synopsys DesignWare Memory Card
>> Interface driver
>> ??????? extensions used in various Synopsys ARC devboards.
>> +config NEXELL_DWMMC
>> +??? bool "Nexell SD/MMC controller support"
>> +??? depends on ARCH_NEXELL
>> +??? depends on MMC_DW
>> +??? default y
>> +
>> ? config MMC_MESON_GX
>> ????? bool "Meson GX EMMC controller support"
>> ????? depends on DM_MMC && BLK && ARCH_MESON
>> diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
>> index 9c1f8e5..a7b5a7b 100644
>> --- a/drivers/mmc/Makefile
>> +++ b/drivers/mmc/Makefile
>> @@ -43,6 +43,7 @@ obj-$(CONFIG_SH_MMCIF) += sh_mmcif.o
>> ? obj-$(CONFIG_SH_SDHI) += sh_sdhi.o
>> ? obj-$(CONFIG_STM32_SDMMC2) += stm32_sdmmc2.o
>> ? obj-$(CONFIG_JZ47XX_MMC) += jz_mmc.o
>> +obj-$(CONFIG_NEXELL_DWMMC) += nexell_dw_mmc_dm.o
>> ? # SDHCI
>> ? obj-$(CONFIG_MMC_SDHCI)??????????? += sdhci.o
>> diff --git a/drivers/mmc/nexell_dw_mmc_dm.c
>> b/drivers/mmc/nexell_dw_mmc_dm.c
>> new file mode 100644
>> index 0000000..b06b60d
>> --- /dev/null
>> +++ b/drivers/mmc/nexell_dw_mmc_dm.c
>> @@ -0,0 +1,350 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * (C) Copyright 2016 Nexell
>> + * Youngbok, Park <park@nexell.co.kr>
>> + *
>> + * (C) Copyright 2019 Stefan Bosch <stefan_b@posteo.net>
>> + */
>> +
>> +#include <common.h>
>> +#include <clk.h>
>> +#include <dm.h>
>> +#include <dt-structs.h>
>> +#include <dwmmc.h>
>> +#include <syscon.h>
>> +#include <asm/gpio.h>
>> +#include <asm/arch/nx_gpio.h>
>> +#include <asm/arch/reset.h>
>> +
>> +#define DWMCI_CLKSEL??????????? 0x09C
>> +#define DWMCI_SHIFT_0??????????? 0x0
>> +#define DWMCI_SHIFT_1??????????? 0x1
>> +#define DWMCI_SHIFT_2??????????? 0x2
>> +#define DWMCI_SHIFT_3??????????? 0x3
>> +#define DWMCI_SET_SAMPLE_CLK(x)??? (x)
>> +#define DWMCI_SET_DRV_CLK(x)??? ((x) << 16)
>> +#define DWMCI_SET_DIV_RATIO(x)??? ((x) << 24)
>> +#define DWMCI_CLKCTRL??????????? 0x114
>> +#define NX_MMC_CLK_DELAY(x, y, a, b)??? ((((x) & 0xFF) << 0) |\
>> +??????????????????? (((y) & 0x03) << 16) |\
>> +??????????????????? (((a) & 0xFF) << 8)? |\
>> +??????????????????? (((b) & 0x03) << 24))
>> +
>> +struct nexell_mmc_plat {
>> +??? struct mmc_config cfg;
>> +??? struct mmc mmc;
>> +};
>> +
>> +struct nexell_dwmmc_priv {
>> +??? struct clk *clk;
>> +??? struct dwmci_host host;
>> +??? int fifo_size;
>> +??? bool fifo_mode;
>> +??? int frequency;
>> +??? u32 min_freq;
>> +??? u32 max_freq;
>> +??? int d_delay;
>> +??? int d_shift;
>> +??? int s_delay;
>> +??? int s_shift;
>> +
>> +};
>> +
>> +struct clk *clk_get(const char *id);
>> +
>> +static void set_pin_stat(int index, int bit, int value)
>> +{
>> +#if !defined(CONFIG_SPL_BUILD)
>> +??? nx_gpio_set_pad_function(index, bit, value);
>> +#else
>> +#if defined(CONFIG_ARCH_S5P4418) ||??? \
>> +??? defined(CONFIG_ARCH_S5P6818)
>> +
>> +??? unsigned long base[5] = {
>> +??????? PHY_BASEADDR_GPIOA, PHY_BASEADDR_GPIOB,
>> +??????? PHY_BASEADDR_GPIOC, PHY_BASEADDR_GPIOD,
>> +??????? PHY_BASEADDR_GPIOE,
>> +??? };
>> +
>> +??? dw_mmc_set_pin(base[index], bit, value);
>> +#endif
>> +#endif
>> +}
>> +
>> +static void nx_dw_mmc_set_pin(struct dwmci_host *host)
>> +{
>> +??? debug("? %s(): dev_index == %d", __func__, host->dev_index);
>> +
>> +??? switch (host->dev_index) {
>> +??? case 0:
>> +??????? set_pin_stat(0, 29, 1);
>> +??????? set_pin_stat(0, 31, 1);
>> +??????? set_pin_stat(1, 1, 1);
>> +??????? set_pin_stat(1, 3, 1);
>> +??????? set_pin_stat(1, 5, 1);
>> +??????? set_pin_stat(1, 7, 1);
>> +??????? break;
>> +??? case 1:
>> +??????? set_pin_stat(3, 22, 1);
>> +??????? set_pin_stat(3, 23, 1);
>> +??????? set_pin_stat(3, 24, 1);
>> +??????? set_pin_stat(3, 25, 1);
>> +??????? set_pin_stat(3, 26, 1);
>> +??????? set_pin_stat(3, 27, 1);
>> +??????? break;
>> +??? case 2:
>> +??????? set_pin_stat(2, 18, 2);
>> +??????? set_pin_stat(2, 19, 2);
>> +??????? set_pin_stat(2, 20, 2);
>> +??????? set_pin_stat(2, 21, 2);
>> +??????? set_pin_stat(2, 22, 2);
>> +??????? set_pin_stat(2, 23, 2);
>> +??????? if (host->buswidth == 8) {
>> +??????????? set_pin_stat(4, 21, 2);
>> +??????????? set_pin_stat(4, 22, 2);
>> +??????????? set_pin_stat(4, 23, 2);
>> +??????????? set_pin_stat(4, 24, 2);
>> +??????? }
>> +??????? break;
>> +??? default:
>> +??????? debug(" is invalid!");
>> +??? }
>> +??? debug("\n");
>> +}
>> +
>> +static void nx_dw_mmc_clksel(struct dwmci_host *host)
>> +{
>> +??? u32 val;
>> +
>> +#ifdef CONFIG_BOOST_MMC
>> +??? val = DWMCI_SET_SAMPLE_CLK(DWMCI_SHIFT_0) |
>> +??????? DWMCI_SET_DRV_CLK(DWMCI_SHIFT_0) | DWMCI_SET_DIV_RATIO(1);
>> +#else
>> +??? val = DWMCI_SET_SAMPLE_CLK(DWMCI_SHIFT_0) |
>> +??????? DWMCI_SET_DRV_CLK(DWMCI_SHIFT_0) | DWMCI_SET_DIV_RATIO(3);
>> +#endif
>> +
>> +??? dwmci_writel(host, DWMCI_CLKSEL, val);
>> +}
>> +
>> +static void nx_dw_mmc_reset(int ch)
>> +{
>> +??? int rst_id = RESET_ID_SDMMC0 + ch;
>> +
>> +??? nx_rstcon_setrst(rst_id, 0);
>> +??? nx_rstcon_setrst(rst_id, 1);
>> +}
>> +
>> +static void nx_dw_mmc_clk_delay(struct udevice *dev)
>> +{
>> +??? unsigned int delay;
>> +??? struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
>> +??? struct dwmci_host *host = &priv->host;
>> +
>> +??? delay = NX_MMC_CLK_DELAY(priv->d_delay,
>> +???????????????? priv->d_shift, priv->s_delay, priv->s_shift);
>> +
>> +??? writel(delay, (host->ioaddr + DWMCI_CLKCTRL));
>> +??? debug("%s(): Values set: d_delay==%d, d_shift==%d, s_delay==%d, "
>> +????????? "s_shift==%d\n", __func__, priv->d_delay, priv->d_shift,
>> +????????? priv->s_delay, priv->s_shift);
>> +}
>> +
>> +static unsigned int nx_dw_mmc_get_clk(struct dwmci_host *host, uint
>> freq)
>> +{
>> +??? struct clk *clk;
>> +??? struct udevice *dev = host->priv;
>> +??? struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
>> +
>> +??? int index = host->dev_index;
>> +??? char name[50] = { 0, };
>> +
>> +??? clk = priv->clk;
>> +??? if (!clk) {
>> +??????? sprintf(name, "%s.%d", DEV_NAME_SDHC, index);
>> +??????? clk = clk_get((const char *)name);
>> +??????? if (!clk)
>> +??????????? return 0;
>> +??????? priv->clk = clk;
>> +??? }
>> +
>> +??? return clk_get_rate(clk) / 2;
>> +}
>> +
>> +static unsigned long nx_dw_mmc_set_clk(struct dwmci_host *host,
>> +?????????????????????? unsigned int rate)
>> +{
>> +??? struct clk *clk;
>> +??? char name[50] = { 0, };
>> +??? struct udevice *dev = host->priv;
>> +??? struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
>> +
>> +??? int index = host->dev_index;
>> +
>> +??? clk = priv->clk;
>> +??? if (!clk) {
>> +??????? sprintf(name, "%s.%d", DEV_NAME_SDHC, index);
>> +??????? clk = clk_get((const char *)name);
>> +??????? if (!clk)
>> +??????????? return 0;
>> +??????? priv->clk = clk;
>> +??? }
>> +
>> +??? clk_disable(clk);
>> +??? rate = clk_set_rate(clk, rate);
>> +??? clk_enable(clk);
>> +
>> +??? return rate;
>> +}
>> +
>> +static int nexell_dwmmc_ofdata_to_platdata(struct udevice *dev)
>> +{
>> +??? /* if (dev): *priv = dev->priv, else: *priv = NULL */
>> +??? struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
>> +??? struct dwmci_host *host = &priv->host;
>> +??? int val = -1;
>> +
>> +??? debug("%s()\n", __func__);
>> +
>> +??? host->name = dev->name;
>> +??? host->ioaddr = dev_read_addr_ptr(dev);
>> +
>> +??? val = dev_read_u32_default(dev, "nexell,bus-width", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'nexell,bus-width' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? host->buswidth = val;
>> +??? host->get_mmc_clk = nx_dw_mmc_get_clk;
>> +??? host->clksel = nx_dw_mmc_clksel;
>> +??? host->priv = dev;
>> +
>> +??? val = dev_read_u32_default(dev, "index", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'index' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? host->dev_index = val;
>> +
>> +??? val = dev_read_u32_default(dev, "fifo-size", 0x20);
>> +??? if (val <= 0) {
>> +??????? debug("? 'fifo-size' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->fifo_size = val;
>> +
>> +??? priv->fifo_mode = dev_read_bool(dev, "fifo-mode");
>> +
>> +??? val = dev_read_u32_default(dev, "frequency", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'frequency' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->frequency = val;
>> +
>> +??? val = dev_read_u32_default(dev, "max-frequency", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'max-frequency' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->max_freq = val;
>> +??? priv->min_freq = 400000;? /* 400 kHz */
>> +
>> +??? val = dev_read_u32_default(dev, "nexell,drive_dly", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'nexell,drive_dly' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->d_delay = val;
>> +
>> +??? val = dev_read_u32_default(dev, "nexell,drive_shift", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'nexell,drive_shift' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->d_shift = val;
>> +
>> +??? val = dev_read_u32_default(dev, "nexell,sample_dly", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'nexell,sample_dly' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->s_delay = val;
>> +
>> +??? val = dev_read_u32_default(dev, "nexell,sample_shift", -1);
>> +??? if (val < 0) {
>> +??????? debug("? 'nexell,sample_shift' missing/invalid!\n");
>> +??????? return -EINVAL;
>> +??? }
>> +??? priv->s_shift = val;
>> +
>> +??? debug("? index==%d, name==%s, ioaddr==0x%08x, buswidth==%d, "
>> +????????? "fifo_size==%d, fifo_mode==%d, frequency==%d\n",
>> +????????? host->dev_index, host->name, (u32)host->ioaddr,
>> +????????? host->buswidth, priv->fifo_size, priv->fifo_mode,
>> +????????? priv->frequency);
>> +??? debug("? min_freq==%d, max_freq==%d, delay: "
>> +????????? "0x%02x:0x%02x:0x%02x:0x%02x\n",
>> +????????? priv->min_freq, priv->max_freq, priv->d_delay,
>> +????????? priv->d_shift, priv->s_delay, priv->s_shift);
>> +
>> +??? return 0;
>> +}
>> +
>> +static int nexell_dwmmc_probe(struct udevice *dev)
>> +{
>> +??? struct nexell_mmc_plat *plat = dev_get_platdata(dev);
>> +??? struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
>> +??? struct nexell_dwmmc_priv *priv = dev_get_priv(dev);
>> +??? struct dwmci_host *host = &priv->host;
>> +??? struct udevice *pwr_dev __maybe_unused;
>> +
>> +??? debug("%s():\n", __func__);
>> +
>> +??? host->fifoth_val = MSIZE(0x2) |
>> +??????? RX_WMARK(priv->fifo_size / 2 - 1) |
>> +??????? TX_WMARK(priv->fifo_size / 2);
>> +
>> +??? host->fifo_mode = priv->fifo_mode;
>> +
>> +??? dwmci_setup_cfg(&plat->cfg, host, priv->max_freq, priv->min_freq);
>> +??? host->mmc = &plat->mmc;
>> +??? host->mmc->priv = &priv->host;
>> +??? host->mmc->dev = dev;
>> +??? upriv->mmc = host->mmc;
>> +
>> +??? nx_dw_mmc_set_pin(host);
>> +
>> +??? debug("? nx_dw_mmc_set_clk(host, frequency * 4 == %d)\n",
>> +????????? priv->frequency * 4);
>> +??? nx_dw_mmc_set_clk(host, priv->frequency * 4);
>> +
>> +??? nx_dw_mmc_reset(host->dev_index);
>> +??? nx_dw_mmc_clk_delay(dev);
>> +
>> +??? return dwmci_probe(dev);
>> +}
>> +
>> +static int nexell_dwmmc_bind(struct udevice *dev)
>> +{
>> +??? struct nexell_mmc_plat *plat = dev_get_platdata(dev);
>> +
>> +??? return dwmci_bind(dev, &plat->mmc, &plat->cfg);
>> +}
>> +
>> +static const struct udevice_id nexell_dwmmc_ids[] = {
>> +??? { .compatible = "nexell,nexell-dwmmc" },
>> +??? { }
>> +};
>> +
>> +U_BOOT_DRIVER(nexell_dwmmc_drv) = {
>> +??? .name??????? = "nexell_dwmmc",
>> +??? .id??????? = UCLASS_MMC,
>> +??? .of_match??? = nexell_dwmmc_ids,
>> +??? .ofdata_to_platdata = nexell_dwmmc_ofdata_to_platdata,
>> +??? .ops??????? = &dm_dwmci_ops,
>> +??? .bind??????? = nexell_dwmmc_bind,
>> +??? .probe??????? = nexell_dwmmc_probe,
>> +??? .priv_auto_alloc_size = sizeof(struct nexell_dwmmc_priv),
>> +??? .platdata_auto_alloc_size = sizeof(struct nexell_mmc_plat),
>> +};
>> diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
>> index a837c35..b45aada 100644
>> --- a/drivers/pwm/Makefile
>> +++ b/drivers/pwm/Makefile
>> @@ -16,3 +16,4 @@ obj-$(CONFIG_PWM_ROCKCHIP)??? += rk_pwm.o
>> ? obj-$(CONFIG_PWM_SANDBOX)??? += sandbox_pwm.o
>> ? obj-$(CONFIG_PWM_TEGRA)??????? += tegra_pwm.o
>> ? obj-$(CONFIG_PWM_SUNXI)??????? += sunxi_pwm.o
>> +obj-$(CONFIG_PWM_NX)??????? += pwm-nexell.o
>> diff --git a/drivers/pwm/pwm-nexell.c b/drivers/pwm/pwm-nexell.c
>> new file mode 100644
>> index 0000000..6c0f8f4
>> --- /dev/null
>> +++ b/drivers/pwm/pwm-nexell.c
>> @@ -0,0 +1,252 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Copyright (C) 2011 Samsung Electronics
>> + *
>> + * Donghwa Lee <dh09.lee@samsung.com>
>> + */
>> +
>> +/* This codes are copied from arch/arm/cpu/armv7/s5p-common/pwm.c */
>> +
>> +#include <common.h>
>> +#include <errno.h>
>> +#include <pwm.h>
>> +#include <asm/io.h>
>> +#include <asm/arch/clk.h>
>> +#include "pwm-nexell.h"
>> +
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +#include <asm/arch/nexell.h>
>> +#include <asm/arch/reset.h>
>> +#include <asm/arch/nx_gpio.h>
>> +#include <asm/arch/tieoff.h>
>> +
>> +struct pwm_device {
>> +??? int ch;
>> +??? int grp;
>> +??? int bit;
>> +??? int pwm_fn;
>> +};
>> +
>> +static struct pwm_device pwm_dev[] = {
>> +??? [0] = { .ch = 0, .grp = 3, .bit = 1,? .pwm_fn = 1 },
>> +??? [1] = { .ch = 1, .grp = 2, .bit = 13, .pwm_fn = 2 },
>> +??? [2] = { .ch = 2, .grp = 2, .bit = 14, .pwm_fn =??? 2 },
>> +??? [3] = { .ch = 3, .grp = 3, .bit = 0,? .pwm_fn = 2 },
>> +};
>> +#endif
>> +
>> +int pwm_enable(int pwm_id)
>> +{
>> +??? const struct s5p_timer *pwm =
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??????????? (struct s5p_timer *)PHY_BASEADDR_PWM;
>> +#else
>> +??????????? (struct s5p_timer *)samsung_get_base_timer();
>> +#endif
>> +??? unsigned long tcon;
>> +
>> +??? tcon = readl(&pwm->tcon);
>> +??? tcon |= TCON_START(pwm_id);
>> +
>> +??? writel(tcon, &pwm->tcon);
>> +
>> +??? return 0;
>> +}
>> +
>> +void pwm_disable(int pwm_id)
>> +{
>> +??? const struct s5p_timer *pwm =
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??????????? (struct s5p_timer *)PHY_BASEADDR_PWM;
>> +#else
>> +??????????? (struct s5p_timer *)samsung_get_base_timer();
>> +#endif
>> +??? unsigned long tcon;
>> +
>> +??? tcon = readl(&pwm->tcon);
>> +??? tcon &= ~TCON_START(pwm_id);
>> +
>> +??? writel(tcon, &pwm->tcon);
>> +}
>> +
>> +static unsigned long pwm_calc_tin(int pwm_id, unsigned long freq)
>> +{
>> +??? unsigned long tin_parent_rate;
>> +??? unsigned int div;
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??? unsigned int pre_div;
>> +??? const struct s5p_timer *pwm =
>> +??????? (struct s5p_timer *)PHY_BASEADDR_PWM;
>> +??? unsigned int val;
>> +#endif
>> +
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??? struct clk *clk = clk_get(CORECLK_NAME_PCLK);
>> +
>> +??? tin_parent_rate = clk_get_rate(clk);
>> +#else
>> +??? tin_parent_rate = get_pwm_clk();
>> +#endif
>> +
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??? writel(0, &pwm->tcfg0);
>> +??? val = readl(&pwm->tcfg0);
>> +
>> +??? if (pwm_id < 2)
>> +??????? div = ((val >> 0) & 0xff) + 1;
>> +??? else
>> +??????? div = ((val >> 8) & 0xff) + 1;
>> +
>> +??? writel(0, &pwm->tcfg1);
>> +??? val = readl(&pwm->tcfg1);
>> +??? val = (val >> MUX_DIV_SHIFT(pwm_id)) & 0xF;
>> +??? pre_div = (1UL << val);
>> +
>> +??? freq = tin_parent_rate / div / pre_div;
>> +
>> +??? return freq;
>> +#else
>> +??? for (div = 2; div <= 16; div *= 2) {
>> +??????? if ((tin_parent_rate / (div << 16)) < freq)
>> +??????????? return tin_parent_rate / div;
>> +??? }
>> +
>> +??? return tin_parent_rate / 16;
>> +#endif
>> +}
>> +
>> +#define NS_IN_SEC 1000000000UL
>> +
>> +int pwm_config(int pwm_id, int duty_ns, int period_ns)
>> +{
>> +??? const struct s5p_timer *pwm =
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??????? (struct s5p_timer *)PHY_BASEADDR_PWM;
>> +#else
>> +??????? (struct s5p_timer *)samsung_get_base_timer();
>> +#endif
>> +??? unsigned int offset;
>> +??? unsigned long tin_rate;
>> +??? unsigned long tin_ns;
>> +??? unsigned long frequency;
>> +??? unsigned long tcon;
>> +??? unsigned long tcnt;
>> +??? unsigned long tcmp;
>> +
>> +??? /*
>> +???? * We currently avoid using 64bit arithmetic by using the
>> +???? * fact that anything faster than 1GHz is easily representable
>> +???? * by 32bits.
>> +???? */
>> +??? if (period_ns > NS_IN_SEC || duty_ns > NS_IN_SEC || period_ns == 0)
>> +??????? return -ERANGE;
>> +
>> +??? if (duty_ns > period_ns)
>> +??????? return -EINVAL;
>> +
>> +??? frequency = NS_IN_SEC / period_ns;
>> +
>> +??? /* Check to see if we are changing the clock rate of the PWM */
>> +??? tin_rate = pwm_calc_tin(pwm_id, frequency);
>> +
>> +??? tin_ns = NS_IN_SEC / tin_rate;
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??? /* The counter starts at zero. */
>> +??? tcnt = (period_ns / tin_ns) - 1;
>> +#else
>> +??? tcnt = period_ns / tin_ns;
>> +#endif
>> +
>> +??? /* Note, counters count down */
>> +??? tcmp = duty_ns / tin_ns;
>> +??? tcmp = tcnt - tcmp;
>> +
>> +??? /* Update the PWM register block. */
>> +??? offset = pwm_id * 3;
>> +??? if (pwm_id < 4) {
>> +??????? writel(tcnt, &pwm->tcntb0 + offset);
>> +??????? writel(tcmp, &pwm->tcmpb0 + offset);
>> +??? }
>> +
>> +??? tcon = readl(&pwm->tcon);
>> +??? tcon |= TCON_UPDATE(pwm_id);
>> +??? if (pwm_id < 4)
>> +??????? tcon |= TCON_AUTO_RELOAD(pwm_id);
>> +??? else
>> +??????? tcon |= TCON4_AUTO_RELOAD;
>> +??? writel(tcon, &pwm->tcon);
>> +
>> +??? tcon &= ~TCON_UPDATE(pwm_id);
>> +??? writel(tcon, &pwm->tcon);
>> +
>> +??? return 0;
>> +}
>> +
>> +int pwm_init(int pwm_id, int div, int invert)
>> +{
>> +??? u32 val;
>> +??? const struct s5p_timer *pwm =
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??????????? (struct s5p_timer *)PHY_BASEADDR_PWM;
>> +#else
>> +??????????? (struct s5p_timer *)samsung_get_base_timer();
>> +#endif
>> +??? unsigned long ticks_per_period;
>> +??? unsigned int offset, prescaler;
>> +
>> +??? /*
>> +???? * Timer Freq(HZ) =
>> +???? *??? PWM_CLK / { (prescaler_value + 1) * (divider_value) }
>> +???? */
>> +
>> +??? val = readl(&pwm->tcfg0);
>> +??? if (pwm_id < 2) {
>> +??????? prescaler = PRESCALER_0;
>> +??????? val &= ~0xff;
>> +??????? val |= (prescaler & 0xff);
>> +??? } else {
>> +??????? prescaler = PRESCALER_1;
>> +??????? val &= ~(0xff << 8);
>> +??????? val |= (prescaler & 0xff) << 8;
>> +??? }
>> +??? writel(val, &pwm->tcfg0);
>> +??? val = readl(&pwm->tcfg1);
>> +??? val &= ~(0xf << MUX_DIV_SHIFT(pwm_id));
>> +??? val |= (div & 0xf) << MUX_DIV_SHIFT(pwm_id);
>> +??? writel(val, &pwm->tcfg1);
>> +
>> +??? if (pwm_id == 4) {
>> +??????? /*
>> +???????? * TODO(sjg): Use this as a countdown timer for now. We count
>> +???????? * down from the maximum value to 0, then reset.
>> +???????? */
>> +??????? ticks_per_period = -1UL;
>> +??? } else {
>> +??????? const unsigned long pwm_hz = 1000;
>> +#if defined(CONFIG_ARCH_NEXELL)
>> +??????? struct clk *clk = clk_get(CORECLK_NAME_PCLK);
>> +??????? unsigned long timer_rate_hz = clk_get_rate(clk) /
>> +#else
>> +??????? unsigned long timer_rate_hz = get_pwm_clk() /
>> +#endif
>> +??????????? ((prescaler + 1) * (1 << div));
>> +
>> +??????? ticks_per_period = timer_rate_hz / pwm_hz;
>> +??? }
>> +
>> +??? /* set count value */
>> +??? offset = pwm_id * 3;
>> +
>> +??? writel(ticks_per_period, &pwm->tcntb0 + offset);
>> +
>> +??? val = readl(&pwm->tcon) & ~(0xf << TCON_OFFSET(pwm_id));
>> +??? if (invert && pwm_id < 4)
>> +??????? val |= TCON_INVERTER(pwm_id);
>> +??? writel(val, &pwm->tcon);
>> +
>> +??? nx_gpio_set_pad_function(pwm_dev[pwm_id].grp, pwm_dev[pwm_id].bit,
>> +???????????????? pwm_dev[pwm_id].pwm_fn);
>> +??? pwm_enable(pwm_id);
>> +
>> +??? return 0;
>> +}
>> diff --git a/drivers/pwm/pwm-nexell.h b/drivers/pwm/pwm-nexell.h
>> new file mode 100644
>> index 0000000..92dc707
>> --- /dev/null
>> +++ b/drivers/pwm/pwm-nexell.h
>> @@ -0,0 +1,54 @@
>> +/* SPDX-License-Identifier: GPL-2.0+
>> + *
>> + * Copyright (C) 2009 Samsung Electronics
>> + * Kyungmin Park <kyungmin.park@samsung.com>
>> + * Minkyu Kang <mk7.kang@samsung.com>
>> + */
>> +
>> +#ifndef __ASM_ARM_ARCH_PWM_H_
>> +#define __ASM_ARM_ARCH_PWM_H_
>> +
>> +#define PRESCALER_0??????? (8 - 1)??????? /* prescaler of timer 0, 1 */
>> +#define PRESCALER_1??????? (16 - 1)??? /* prescaler of timer 2, 3, 4 */
>> +
>> +/* Divider MUX */
>> +#define MUX_DIV_1??????? 0??????? /* 1/1 period */
>> +#define MUX_DIV_2??????? 1??????? /* 1/2 period */
>> +#define MUX_DIV_4??????? 2??????? /* 1/4 period */
>> +#define MUX_DIV_8??????? 3??????? /* 1/8 period */
>> +#define MUX_DIV_16??????? 4??????? /* 1/16 period */
>> +
>> +#define MUX_DIV_SHIFT(x)??? ((x) * 4)
>> +
>> +#define TCON_OFFSET(x)??????? (((x) + 1) * (!!x) << 2)
>> +
>> +#define TCON_START(x)??????? (1 << TCON_OFFSET(x))
>> +#define TCON_UPDATE(x)??????? (1 << (TCON_OFFSET(x) + 1))
>> +#define TCON_INVERTER(x)??? (1 << (TCON_OFFSET(x) + 2))
>> +#define TCON_AUTO_RELOAD(x)??? (1 << (TCON_OFFSET(x) + 3))
>> +#define TCON4_AUTO_RELOAD??? (1 << 22)
>> +
>> +#ifndef __ASSEMBLY__
>> +struct s5p_timer {
>> +??? unsigned int??? tcfg0;
>> +??? unsigned int??? tcfg1;
>> +??? unsigned int??? tcon;
>> +??? unsigned int??? tcntb0;
>> +??? unsigned int??? tcmpb0;
>> +??? unsigned int??? tcnto0;
>> +??? unsigned int??? tcntb1;
>> +??? unsigned int??? tcmpb1;
>> +??? unsigned int??? tcnto1;
>> +??? unsigned int??? tcntb2;
>> +??? unsigned int??? tcmpb2;
>> +??? unsigned int??? tcnto2;
>> +??? unsigned int??? tcntb3;
>> +??? unsigned int??? res1;
>> +??? unsigned int??? tcnto3;
>> +??? unsigned int??? tcntb4;
>> +??? unsigned int??? tcnto4;
>> +??? unsigned int??? tintcstat;
>> +};
>> +#endif??? /* __ASSEMBLY__ */
>> +
>> +#endif
>>
>
^ permalink raw reply
* Re: [GSoC PATCH v2 1/2] lib-log-graph: consolidate test_cmp_graph logic
From: Junio C Hamano @ 2020-02-20 17:49 UTC (permalink / raw)
To: Abhishek Kumar; +Cc: git
In-Reply-To: <20200220091528.28472-2-abhishekkumar8222@gmail.com>
Abhishek Kumar <abhishekkumar8222@gmail.com> writes:
> Logic for comparing log graphs is duplicated across test scripts.
>
> This patch consolidates such logic into lib-log-graph.
The proposed log message is a bit thin. It does a bit more than
"conslidates", doesn't it?
> Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com>
> ---
> t/lib-log-graph.sh | 22 +++++++++++++++
> t/t3430-rebase-merges.sh | 5 ++--
> t/t4202-log.sh | 53 ++++++++++--------------------------
> t/t4214-log-graph-octopus.sh | 46 ++++++++++---------------------
> t/t4215-log-skewed-merges.sh | 5 ++--
> 5 files changed, 54 insertions(+), 77 deletions(-)
> create mode 100755 t/lib-log-graph.sh
>
> diff --git a/t/lib-log-graph.sh b/t/lib-log-graph.sh
> new file mode 100755
> index 0000000000..97cde44dc7
> --- /dev/null
> +++ b/t/lib-log-graph.sh
> @@ -0,0 +1,22 @@
> +# Helps shared by the test scripts for comparing log graphs.
> +
> +sanitize_log_output () {
> + sed -e 's/ *$//' \
> + -e 's/commit [0-9a-f]*$/commit COMMIT_OBJECT_NAME/' \
> + -e 's/Merge: [ 0-9a-f]*$/Merge: MERGE_PARENTS/' \
> + -e 's/Merge tag.*/Merge HEADS DESCRIPTION/' \
> + -e 's/Merge commit.*/Merge HEADS DESCRIPTION/' \
> + -e 's/index [0-9a-f]*\.\.[0-9a-f]*/index BEFORE..AFTER/'
> +}
For example, discarding the singular/plural compat stuff from the
t4202's version is OK, but we should record that is what we did in
the log message to allow readers to notice.
> +lib_test_cmp_graph () {
Nicely named.
> + git log --graph "$@" >output &&
> + sed 's/ *$//' >output.sanitized < output &&
Lose SP not just on the output redirection but also on the input
redirection. I.e.
sed 's/ *$//' >output.sanitized <output &&
Or you can lose the input redirection altogether as "sed" knows to
treat remaining command line arguments as names of its input files,
i.e.
sed 's/ *$//' output >output.sanitized &&
People may find the latter easier to read. I personally do not have
strong preference either way as long as it is consistent.
> + test_i18ncmp expect output.sanitized
> +}
> +
> +lib_test_cmp_short_graph () {
> + git log --graph --pretty=short "$@" >output &&
> + sanitize_log_output >output.sanitized < output &&
sanitize_log_output <output >output.sanitized &&
(I won't repeat)
> check_graph () {
> cat >expect &&
> - git log --graph --pretty=tformat:%s "$@" >actual.raw &&
> - sed "s/ *$//" actual.raw >actual &&
> - test_cmp expect actual
> + lib_test_cmp_graph --format=%s "$@"
> }
Hmm, is this correct? The input goes to expect but the new helper
you wrote, lib_test_cmp_graph, won't see it.
^ permalink raw reply
* Re: [PATCH] task_work_run: don't take ->pi_lock unconditionally
From: Peter Zijlstra @ 2020-02-20 17:49 UTC (permalink / raw)
To: Oleg Nesterov
Cc: Jens Axboe, Carter Li 李通洲, Pavel Begunkov,
io-uring
In-Reply-To: <20200220172201.GC27143@redhat.com>
On Thu, Feb 20, 2020 at 06:22:02PM +0100, Oleg Nesterov wrote:
> On 02/20, Peter Zijlstra wrote:
> > + work = READ_ONCE(task->task_works);
> > + if (!work) {
> > + if (!(task->flags & PF_EXITING))
> > + return;
> > +
> > + /*
> > + * work->func() can do task_work_add(), do not set
> > + * work_exited unless the list is empty.
> > + */
> > + if (try_cmpxchg(&task->task_works, &work, &work_exited))
> > + return;
> > + }
> > +
> > + work = xchg(&task->task_works, NULL);
> >
> > - if (!work)
> > - break;
>
> You can't remove the "if (!work)" check, cancel_task_work() can remove
> a single callback between READ_ONCE() and xchg().
Argh!
> Oleg.
>
> --- a/kernel/task_work.c
> +++ b/kernel/task_work.c
> @@ -27,14 +27,11 @@ static struct callback_head work_exited; /* all we need is ->next == NULL */
> int
> task_work_add(struct task_struct *task, struct callback_head *work, bool notify)
> {
> - struct callback_head *head;
> -
> + work->next = READ_ONCE(task->task_works);
> do {
> - head = READ_ONCE(task->task_works);
> - if (unlikely(head == &work_exited))
> + if (unlikely(work->next == &work_exited))
> return -ESRCH;
> - work->next = head;
> - } while (cmpxchg(&task->task_works, head, work) != head);
> + } while (!try_cmpxchg(&task->task_works, &work->next, work));
>
> if (notify)
> set_notify_resume(task);
Cute, that should work.
> @@ -68,10 +65,10 @@ task_work_cancel(struct task_struct *task, task_work_func_t func)
> * we raced with task_work_run(), *pprev == NULL/exited.
> */
> raw_spin_lock_irqsave(&task->pi_lock, flags);
> + for (work = READ_ONCE(*pprev); work; ) {
> if (work->func != func)
> pprev = &work->next;
But didn't you loose the READ_ONCE() of *pprev in this branch?
> + else if (try_cmpxchg(pprev, &work, work->next))
> break;
> }
> raw_spin_unlock_irqrestore(&task->pi_lock, flags);
> @@ -97,16 +94,16 @@ void task_work_run(void)
> * work->func() can do task_work_add(), do not set
> * work_exited unless the list is empty.
> */
> + work = READ_ONCE(task->task_works);
> do {
> head = NULL;
> if (!work) {
> if (task->flags & PF_EXITING)
> head = &work_exited;
> else
> break;
> }
> + } while (!try_cmpxchg(&task->task_works, &work, head));
>
> if (!work)
> break;
But given that, as you say, cancel() could have gone and stole our head,
should we not try and install &work_exiting when PF_EXITING in that
case?
That is; should we not do continue in that case, instead of break.
---
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
@@ -27,14 +27,13 @@ static struct callback_head work_exited;
int
task_work_add(struct task_struct *task, struct callback_head *work, bool notify)
{
- struct callback_head *head;
+ struct callback_head *head = READ_ONCE(tsk->task_works);
do {
- head = READ_ONCE(task->task_works);
if (unlikely(head == &work_exited))
return -ESRCH;
work->next = head;
- } while (cmpxchg(&task->task_works, head, work) != head);
+ } while (!try_cmpxchg(&task->task_works, &head, work))
if (notify)
set_notify_resume(task);
@@ -69,9 +68,12 @@ task_work_cancel(struct task_struct *tas
*/
raw_spin_lock_irqsave(&task->pi_lock, flags);
while ((work = READ_ONCE(*pprev))) {
- if (work->func != func)
+ if (work->func != func) {
pprev = &work->next;
- else if (cmpxchg(pprev, work, work->next) == work)
+ continue;
+ }
+
+ if (try_cmpxchg(pprev, &work, work->next))
break;
}
raw_spin_unlock_irqrestore(&task->pi_lock, flags);
@@ -90,26 +92,26 @@ task_work_cancel(struct task_struct *tas
void task_work_run(void)
{
struct task_struct *task = current;
- struct callback_head *work, *head, *next;
+ struct callback_head *work, *next;
for (;;) {
- /*
- * work->func() can do task_work_add(), do not set
- * work_exited unless the list is empty.
- */
- do {
- head = NULL;
- work = READ_ONCE(task->task_works);
- if (!work) {
- if (task->flags & PF_EXITING)
- head = &work_exited;
- else
- break;
- }
- } while (cmpxchg(&task->task_works, work, head) != work);
+ work = READ_ONCE(task->task_works);
+ if (!work) {
+ if (!(task->flags & PF_EXITING))
+ return;
+
+ /*
+ * work->func() can do task_work_add(), do not set
+ * work_exited unless the list is empty.
+ */
+ if (try_cmpxchg(&task->task_works, &work, &work_exited))
+ return;
+ }
+
+ work = xchg(&task->task_works, NULL);
+ if (!work)
+ continue;
- if (!work)
- break;
/*
* Synchronize with task_work_cancel(). It can not remove
* the first entry == work, cmpxchg(task_works) must fail.
^ permalink raw reply
* Re: [PATCH v3 1/3] loop: Use worker per cgroup instead of kworker
From: Johannes Weiner @ 2020-02-20 17:50 UTC (permalink / raw)
To: Dan Schatzberg
Cc: Jens Axboe, Tejun Heo, Li Zefan, Michal Hocko, Vladimir Davydov,
Andrew Morton, Hugh Dickins, Roman Gushchin, Shakeel Butt,
Chris Down, Yang Shi, Thomas Gleixner, open list:BLOCK LAYER,
open list, open list:CONTROL GROUP (CGROUP),
open list:CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
In-Reply-To: <118a1bd99d12f1980c7fc01ab732b40ffd8f0537.1582216294.git.schatzberg.dan@gmail.com>
Hello Dan,
On Thu, Feb 20, 2020 at 11:51:51AM -0500, Dan Schatzberg wrote:
> +static void loop_process_work(struct loop_worker *worker,
> + struct list_head *cmd_list, struct loop_device *lo)
> +{
> + int orig_flags = current->flags;
> + struct loop_cmd *cmd;
> +
> + current->flags |= PF_LESS_THROTTLE | PF_MEMALLOC_NOIO;
> + while (1) {
> + spin_lock_irq(&lo->lo_lock);
> + if (list_empty(cmd_list))
> + break;
> +
> + cmd = container_of(
> + cmd_list->next, struct loop_cmd, list_entry);
> + list_del(cmd_list->next);
> + spin_unlock_irq(&lo->lo_lock);
> + loop_handle_cmd(cmd);
> + cond_resched();
> + }
The loop structure tripped me up, because it's not immediately obvious
that the lock will be held coming out. How about the following to make
the lock section stand out visually?
spin_lock_irq(&lo->lo_lock);
while (!list_empty(cmd_list)) {
cmd = container_of(cmd_list->next, struct loop_cmd, list_entry);
list_del(&cmd->list_entry);
spin_unlock_irq(&lo->lo_lock);
loop_handle_cmd(cmd);
cond_resched();
spin_lock_irq(&lo->lo_lock);
}
> - loop_handle_cmd(cmd);
> + /*
> + * We only add to the idle list if there are no pending cmds
> + * *and* the worker will not run again which ensures that it
> + * is safe to free any worker on the idle list
> + */
> + if (worker && !work_pending(&worker->work)) {
> + worker->last_ran_at = jiffies;
> + list_add_tail(&worker->idle_list, &lo->idle_worker_list);
> + loop_set_timer(lo);
> + }
> + spin_unlock_irq(&lo->lo_lock);
> + current->flags = orig_flags;
^ permalink raw reply
* Re: MCE handler gets NIP wrong on MPC8378
From: Christophe Leroy @ 2020-02-20 17:48 UTC (permalink / raw)
To: Radu Rendec; +Cc: linuxppc-dev
In-Reply-To: <CAD5jUk9kEsWJDkgOD4rSsL6D2U92FLcunOSu6dVQjR1qdbMQWg@mail.gmail.com>
Le 20/02/2020 à 18:34, Radu Rendec a écrit :
> On 02/20/2020 at 11:25 AM Christophe Leroy <christophe.leroy@c-s.fr> wrote:
>> Le 20/02/2020 à 17:02, Radu Rendec a écrit :
>>> On 02/20/2020 at 3:38 AM Christophe Leroy <christophe.leroy@c-s.fr> wrote:
>>>> On 02/19/2020 10:39 PM, Radu Rendec wrote:
>>>>> On 02/19/2020 at 4:21 PM Christophe Leroy <christophe.leroy@c-s.fr> wrote:
>>>>>>> Interesting.
>>>>>>>
>>>>>>> 0x900 is the adress of the timer interrupt.
>>>>>>>
>>>>>>> Would the MCE occur just after the timer interrupt ?
>>>>>
>>>>> I doubt that. I'm using a small test module to artificially trigger the
>>>>> MCE. Basically it's just this (the full code is in my original post):
>>>>>
>>>>> bad_addr_base = ioremap(0xf0000000, 0x100);
>>>>> x = ioread32(bad_addr_base);
>>>>>
>>>>> I find it hard to believe that every time I load the module the lwbrx
>>>>> instruction that triggers the MCE is executed exactly after the timer
>>>>> interrupt (or that the timer interrupt always occurs close to the lwbrx
>>>>> instruction).
>>>>
>>>> Can you try to see how much time there is between your read and the MCE ?
>>>> The below should allow it, you'll see first value in r13 and the other
>>>> in r14 (mce.c is your test code)
>>>>
>>>> Also provide the timebase frequency as reported in /proc/cpuinfo
>>>
>>> I just ran a test: r13 is 0xda8e0f91 and r14 is 0xdaae0f9c.
>>>
>>> # cat /proc/cpuinfo
>>> processor : 0
>>> cpu : e300c4
>>> clock : 800.000004MHz
>>> revision : 1.1 (pvr 8086 1011)
>>> bogomips : 200.00
>>> timebase : 100000000
>>>
>>> The difference between r14 and r13 is 0x20000b. Assuming TB is
>>> incremented with 'timebase' frequency, that means 20.97 milliseconds
>>> (although the e300 manual says TB is "incremented once every four core
>>> input clock cycles").
>>
>> I wouldn't be surprised that the internal CPU clock be twice the input
>> clock.
>>
>> So that's long enough to surely get a timer interrupt during every bad
>> access.
>>
>> Now we have to understand why SRR1 contains the address of the timer
>> exception entry and not the address of the bad access.
>>
>> The value of SRR1 confirms that it comes from 0x900 as MSR[IR] and [DR]
>> are cleared when interrupts are enabled.
>>
>> Maybe you should file a support case at NXP. They are usually quite
>> professionnal at responding.
>
> I already did (quite some time ago), but it started off as "why does the
> MCE occur in the first place". That part has already been figured out,
> but unfortunately I don't have a viable solution to it. Like you said,
> now the focus has shifted to understanding why the SRR0 value is not
> what we expect.
>
> I asked them the question about SRR0 as soon as you helped me get back
> on track and figured out there's nothing wrong with the Linux MCE
> handler and the NIP value comes from SRR0. What they came up with is
> basically this paragraph in the e300 core manual (section 5.5.2):
>
> | Note that the e300 core makes no attempt to force recoverability on a
> | machine check; however, it does guarantee that the machine check
> | interrupt is always taken immediately upon request, with a nonpredicted
> | address saved in SRR0, regardless of the current machine state.
>
> ... and with an emphasis on "nonpredicted". To be honest, I am a bit
> disappointed with their response and I believe in this context what
> "unpredicted" means is that the address that is saved to SRR0 is a
> "real" address rather than the result of branch prediction. The support
> folks were probably thinking "unpredictable". But that's another word
> and the difference is quite subtle :)
>
> I updated the case and added information about the interrupts and the
> timing. Let's see what they come up with this time.
>
Yes now the point is to understand why it starts processing the timer
interrupt at 0x900 (with IR and DR cleared as observed in SRR1) just
before taking the Machine Check.
Allthough the execution of the decrementer interrupt is queue for after
the completion of the failing memory access, I'd expect the Machine
Check to take priority.
Note that I have never observed such a behaviour on MPC8321 which has an
e300c2 core.
Christophe
^ permalink raw reply
* Re: [PATCH] tcg: gdbstub: Fix single-step issue on arm target
From: Philippe Mathieu-Daudé @ 2020-02-20 17:47 UTC (permalink / raw)
To: Changbin Du, alex.bennee; +Cc: qemu-devel
In-Reply-To: <20200220155834.21905-1-changbin.du@gmail.com>
On 2/20/20 4:58 PM, Changbin Du wrote:
> Recently when debugging an arm32 system on qemu, I found sometimes the
> single-step command (stepi) is not working. This can be reproduced by
> below steps:
> 1) start qemu-system-arm -s -S .. and wait for gdb connection.
> 2) start gdb and connect to qemu. In my case, gdb gets a wrong value
> (0x60) for PC.
> 3) After connected, type 'stepi' and expect it will stop at next ins.
>
> But, it has never stopped. This because:
> 1) We doesn't report ‘vContSupported’ feature to gdb explicitly and gdb
> think we do not support it. In this case, gdb use a software breakpoint
> to emulate single-step.
> 2) Since gdb gets a wrong initial value of PC, then gdb inserts a
> breakpoint to wrong place (PC+4).
>
> Since we do support ‘vContSupported’ query command, so let's tell gdb that
> we support it.
>
> Before this change, gdb send below 'Z0' packet to implement single-step:
> gdb_handle_packet: Z0,4,4
>
> After this change, gdb send "vCont;s.." which is expected:
> gdb_handle_packet: vCont?
> put_packet: vCont;c;C;s;S
> gdb_handle_packet: vCont;s:p1.1;c:p1.-1
You actually fixed this for all architectures :)
This has been annoying me on MIPS since more than a year...
I haven't checked the GDB protocol spec, but so far:
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> Signed-off-by: Changbin Du <changbin.du@gmail.com>
> ---
> gdbstub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gdbstub.c b/gdbstub.c
> index ce304ff482..adccd938e2 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -2111,7 +2111,7 @@ static void handle_query_supported(GdbCmdContext *gdb_ctx, void *user_ctx)
> gdb_ctx->s->multiprocess = true;
> }
>
> - pstrcat(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), ";multiprocess+");
> + pstrcat(gdb_ctx->str_buf, sizeof(gdb_ctx->str_buf), ";vContSupported+;multiprocess+");
> put_packet(gdb_ctx->s, gdb_ctx->str_buf);
> }
>
>
^ permalink raw reply
* Re: [PATCH 19/19] target/arm: Split VMINMAXNM decode
From: Peter Maydell @ 2020-02-20 17:49 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
In-Reply-To: <20200214181547.21408-20-richard.henderson@linaro.org>
On Fri, 14 Feb 2020 at 18:16, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Passing the raw op field from the manual is less instructive
> than it might be. Do the full decode and use the existing
> helpers to perform the expansion.
>
> Since these are v8 insns, VECLEN+VECSTRIDE are already RES0.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply
* [PATCH 0/2] sunxi: clean up defconfig files
From: Andre Przywara @ 2020-02-20 17:51 UTC (permalink / raw)
To: u-boot
With some recent additions and some old cruft, there are some config
options that were defined in *almost* every board defconfig file for
Allwinner SoCs.
This "almost" seems to point to bugs, either those options were missed by
mistake or failed to properly synchronise (when a new board defconfig
comes into the tree and just missed some automatic update).
This series defines those common symbols in their respective Kconfig
files or in the ARCH_SUNXI definition, then removes them from all the
defconfigs.
This fixes those boards that suffered from a missing definition, also
cleans up all board defconfigs by moving not-board-specific options out
of there.
Rationale for why those options are generic are given in the commit
message of 1/2.
Cheers,
Andre
Andre Przywara (2):
sunxi: Move common defconfig options to Kconfig
sunxi: Remove no longer needed default options from defconfigs
Kconfig | 1 +
arch/arm/Kconfig | 2 ++
configs/A10-OLinuXino-Lime_defconfig | 6 ------
configs/A10s-OLinuXino-M_defconfig | 6 ------
configs/A13-OLinuXinoM_defconfig | 6 ------
configs/A13-OLinuXino_defconfig | 5 -----
configs/A20-OLinuXino-Lime2-eMMC_defconfig | 5 -----
configs/A20-OLinuXino-Lime2_defconfig | 5 -----
configs/A20-OLinuXino-Lime_defconfig | 6 ------
configs/A20-OLinuXino_MICRO-eMMC_defconfig | 6 ------
configs/A20-OLinuXino_MICRO_defconfig | 6 ------
configs/A20-Olimex-SOM-EVB_defconfig | 6 ------
configs/A20-Olimex-SOM204-EVB-eMMC_defconfig | 5 -----
configs/A20-Olimex-SOM204-EVB_defconfig | 5 -----
configs/A33-OLinuXino_defconfig | 6 ------
configs/Ainol_AW1_defconfig | 6 ------
configs/Ampe_A76_defconfig | 6 ------
configs/Auxtek-T003_defconfig | 6 ------
configs/Auxtek-T004_defconfig | 6 ------
configs/Bananapi_M2_Ultra_defconfig | 4 ----
configs/Bananapi_defconfig | 6 ------
configs/Bananapi_m2m_defconfig | 4 ----
configs/Bananapro_defconfig | 6 ------
configs/CHIP_defconfig | 6 ------
configs/CHIP_pro_defconfig | 4 ----
configs/CSQ_CS908_defconfig | 6 ------
configs/Chuwi_V7_CW0825_defconfig | 6 ------
configs/Colombus_defconfig | 6 ------
configs/Cubieboard2_defconfig | 6 ------
configs/Cubieboard4_defconfig | 6 ------
configs/Cubieboard_defconfig | 6 ------
configs/Cubietruck_defconfig | 5 -----
configs/Cubietruck_plus_defconfig | 6 ------
configs/Empire_electronix_d709_defconfig | 6 ------
configs/Empire_electronix_m712_defconfig | 6 ------
configs/Hummingbird_A31_defconfig | 6 ------
configs/Hyundai_A7HD_defconfig | 6 ------
configs/Itead_Ibox_A20_defconfig | 6 ------
configs/Lamobo_R1_defconfig | 6 ------
configs/LicheePi_Zero_defconfig | 6 ------
configs/Linksprite_pcDuino3_Nano_defconfig | 6 ------
configs/Linksprite_pcDuino3_defconfig | 6 ------
configs/Linksprite_pcDuino_defconfig | 6 ------
configs/MK808C_defconfig | 6 ------
configs/MSI_Primo73_defconfig | 6 ------
configs/MSI_Primo81_defconfig | 6 ------
configs/Marsboard_A10_defconfig | 6 ------
configs/Mele_A1000G_quad_defconfig | 6 ------
configs/Mele_A1000_defconfig | 6 ------
configs/Mele_I7_defconfig | 6 ------
configs/Mele_M3_defconfig | 6 ------
configs/Mele_M5_defconfig | 6 ------
configs/Mele_M9_defconfig | 6 ------
configs/Merrii_A80_Optimus_defconfig | 6 ------
configs/Mini-X_defconfig | 6 ------
configs/Nintendo_NES_Classic_Edition_defconfig | 6 ------
configs/Orangepi_defconfig | 6 ------
configs/Orangepi_mini_defconfig | 6 ------
configs/Sinlinx_SinA31s_defconfig | 6 ------
configs/Sinlinx_SinA33_defconfig | 5 -----
configs/Sinovoip_BPI_M2_defconfig | 6 ------
configs/Sinovoip_BPI_M3_defconfig | 6 ------
configs/Sunchip_CX-A99_defconfig | 6 ------
configs/UTOO_P66_defconfig | 6 ------
configs/Wexler_TAB7200_defconfig | 6 ------
configs/Wits_Pro_A20_DKT_defconfig | 6 ------
configs/Wobo_i5_defconfig | 6 ------
configs/Yones_Toptech_BD1078_defconfig | 6 ------
configs/Yones_Toptech_BS1078_V2_defconfig | 6 ------
configs/a64-olinuxino-emmc_defconfig | 6 ------
configs/a64-olinuxino_defconfig | 6 ------
configs/amarula_a64_relic_defconfig | 6 ------
configs/ba10_tv_box_defconfig | 6 ------
configs/bananapi_m1_plus_defconfig | 5 -----
configs/bananapi_m2_berry_defconfig | 4 ----
configs/bananapi_m2_plus_h3_defconfig | 6 ------
configs/bananapi_m2_plus_h5_defconfig | 6 ------
configs/bananapi_m2_zero_defconfig | 4 ----
configs/bananapi_m64_defconfig | 6 ------
configs/beelink_gs1_defconfig | 5 -----
configs/beelink_x2_defconfig | 5 -----
configs/colorfly_e708_q1_defconfig | 6 ------
configs/difrnce_dit4350_defconfig | 6 ------
configs/dserve_dsrv9703c_defconfig | 6 ------
configs/emlid_neutis_n5_devboard_defconfig | 5 -----
configs/ga10h_v1_1_defconfig | 6 ------
configs/gt90h_v4_defconfig | 6 ------
configs/h8_homlet_v2_defconfig | 6 ------
configs/i12-tvbox_defconfig | 6 ------
configs/iNet_3F_defconfig | 6 ------
configs/iNet_3W_defconfig | 6 ------
configs/iNet_86VS_defconfig | 6 ------
configs/iNet_D978_rev2_defconfig | 6 ------
configs/icnova-a20-swac_defconfig | 6 ------
configs/inet1_defconfig | 6 ------
configs/inet86dz_defconfig | 6 ------
configs/inet97fv2_defconfig | 6 ------
configs/inet98v_rev2_defconfig | 6 ------
configs/inet9f_rev03_defconfig | 6 ------
configs/inet_q972_defconfig | 6 ------
configs/jesurun_q5_defconfig | 6 ------
configs/libretech_all_h3_cc_h2_plus_defconfig | 6 ------
configs/libretech_all_h3_cc_h3_defconfig | 6 ------
configs/libretech_all_h3_cc_h5_defconfig | 6 ------
configs/libretech_all_h3_it_h5_defconfig | 6 ------
configs/libretech_all_h5_cc_h5_defconfig | 6 ------
configs/mixtile_loftq_defconfig | 6 ------
configs/mk802_a10s_defconfig | 6 ------
configs/mk802_defconfig | 6 ------
configs/mk802ii_defconfig | 6 ------
configs/nanopi_a64_defconfig | 6 ------
configs/nanopi_m1_defconfig | 6 ------
configs/nanopi_m1_plus_defconfig | 6 ------
configs/nanopi_neo2_defconfig | 6 ------
configs/nanopi_neo_air_defconfig | 6 ------
configs/nanopi_neo_defconfig | 6 ------
configs/nanopi_neo_plus2_defconfig | 5 -----
configs/oceanic_5205_5inmfd_defconfig | 6 ------
configs/orangepi_2_defconfig | 6 ------
configs/orangepi_lite2_defconfig | 5 -----
configs/orangepi_lite_defconfig | 6 ------
configs/orangepi_one_defconfig | 6 ------
configs/orangepi_one_plus_defconfig | 5 -----
configs/orangepi_pc2_defconfig | 6 ------
configs/orangepi_pc_defconfig | 6 ------
configs/orangepi_pc_plus_defconfig | 6 ------
configs/orangepi_plus2e_defconfig | 6 ------
configs/orangepi_plus_defconfig | 6 ------
configs/orangepi_prime_defconfig | 6 ------
configs/orangepi_r1_defconfig | 4 ----
configs/orangepi_win_defconfig | 6 ------
configs/orangepi_zero_defconfig | 4 ----
configs/orangepi_zero_plus2_defconfig | 6 ------
configs/orangepi_zero_plus2_h3_defconfig | 5 -----
configs/orangepi_zero_plus_defconfig | 6 ------
configs/parrot_r16_defconfig | 5 -----
configs/pine64-lts_defconfig | 6 ------
configs/pine64_plus_defconfig | 6 ------
configs/pine_h64_defconfig | 5 -----
configs/pinebook_defconfig | 5 -----
configs/polaroid_mid2407pxe03_defconfig | 6 ------
configs/polaroid_mid2809pxe04_defconfig | 6 ------
configs/pov_protab2_ips9_defconfig | 6 ------
configs/q8_a13_tablet_defconfig | 6 ------
configs/q8_a23_tablet_800x480_defconfig | 6 ------
configs/q8_a33_tablet_1024x600_defconfig | 6 ------
configs/q8_a33_tablet_800x480_defconfig | 6 ------
configs/r7-tv-dongle_defconfig | 6 ------
configs/sopine_baseboard_defconfig | 6 ------
configs/sun8i_a23_evb_defconfig | 6 ------
configs/sunxi_Gemei_G9_defconfig | 6 ------
configs/tbs_a711_defconfig | 5 -----
configs/teres_i_defconfig | 5 -----
disk/Kconfig | 2 ++
drivers/usb/Kconfig | 1 +
155 files changed, 6 insertions(+), 872 deletions(-)
--
2.17.1
^ permalink raw reply
* [PATCH 1/2] sunxi: Move common defconfig options to Kconfig
From: Andre Przywara @ 2020-02-20 17:51 UTC (permalink / raw)
To: u-boot
In-Reply-To: <20200220175115.76632-1-andre.przywara@arm.com>
Some config symbols are found in *almost* every _defconfig file for
Allwinner boards, because those options are actually a platform choice,
and not a per-board decision.
Some of these options are older, some have recently been added.
Move those options to be set for all Allwinner boards in their
respective Kconfig files.
The rationales are as follows:
- NR_DRAM_BANKS: All Allwinner SoC map DRAM at one contiguous region of
address space only, starting at 1 GB. So it's always one bank.
- SPL_{DOS,EFI}_PARTITION: The Allwinner SPL does only support raw MMC
accesses, we don't care about filesystems or partitions in there, so
there is no need to define those symbols at all.
- USE_PREBOOT: We start USB early when a keyboard is configured, using the
preboot env variable, so we need to set this variable.
- SYS_RELOC_GD_ENV_ADDR: We don't specify any ENV_ADDR, so need this
symbol to be set (according to 8d8ee47e03e).
- SYS_USB_EVENT_POLL_VIA_INT_QUEUE: According to commit eab9433aa55428,
specifying this reduces the latency of the USB keyboard handling, so
this was formerly enabled in config headers for all Allwinner boards.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
Kconfig | 1 +
arch/arm/Kconfig | 2 ++
disk/Kconfig | 2 ++
drivers/usb/Kconfig | 1 +
4 files changed, 6 insertions(+)
diff --git a/Kconfig b/Kconfig
index 66148ce477..b4864cdf8d 100644
--- a/Kconfig
+++ b/Kconfig
@@ -115,6 +115,7 @@ config ENV_VARS_UBOOT_CONFIG
config NR_DRAM_BANKS
int "Number of DRAM banks"
+ default 1 if ARCH_SUNXI
default 4
help
This defines the number of DRAM banks.
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 8d9f7fcce7..02378b4fae 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -999,6 +999,8 @@ config ARCH_SUNXI
select USB_KEYBOARD if DISTRO_DEFAULTS
select USB_STORAGE if DISTRO_DEFAULTS
select SPL_USE_TINY_PRINTF
+ select USE_PREBOOT
+ select SYS_RELOC_GD_ENV_ADDR
imply CMD_DM
imply CMD_GPT
imply CMD_UBI if MTD_RAW_NAND
diff --git a/disk/Kconfig b/disk/Kconfig
index 28fb81c2ee..747275c2ba 100644
--- a/disk/Kconfig
+++ b/disk/Kconfig
@@ -46,6 +46,7 @@ config DOS_PARTITION
config SPL_DOS_PARTITION
bool "Enable MS Dos partition table for SPL"
depends on SPL && PARTITIONS
+ default n if ARCH_SUNXI
default y if DOS_PARTITION
config ISO_PARTITION
@@ -112,6 +113,7 @@ config EFI_PARTITION_ENTRIES_OFF
config SPL_EFI_PARTITION
bool "Enable EFI GPT partition table for SPL"
depends on SPL && PARTITIONS
+ default n if ARCH_SUNXI
default y if EFI_PARTITION
config PARTITION_UUIDS
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index bea4a92b61..928a89133c 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -108,6 +108,7 @@ config USB_KEYBOARD_FN_KEYS
choice
prompt "USB keyboard polling"
+ default SYS_USB_EVENT_POLL_VIA_INT_QUEUE if ARCH_SUNXI
default SYS_USB_EVENT_POLL
---help---
Enable a polling mechanism for USB keyboard.
--
2.17.1
^ permalink raw reply related
* [PATCH 2/2] sunxi: Remove no longer needed default options from defconfigs
From: Andre Przywara @ 2020-02-20 17:51 UTC (permalink / raw)
To: u-boot
In-Reply-To: <20200220175115.76632-1-andre.przywara@arm.com>
Now that those common Allwinner config symbols are defined automatically
for all boards in their Kconfig files, we can remove the now redundant
definitions from the boards' _defconfig files.
Some boards had a differing definiton for some of those symbols, it
looks like mostly to "merge races" when the symbol was introduced (new
board *_defconfig file missed the "add symbol to all files" patch).
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
configs/A10-OLinuXino-Lime_defconfig | 6 ------
configs/A10s-OLinuXino-M_defconfig | 6 ------
configs/A13-OLinuXinoM_defconfig | 6 ------
configs/A13-OLinuXino_defconfig | 5 -----
configs/A20-OLinuXino-Lime2-eMMC_defconfig | 5 -----
configs/A20-OLinuXino-Lime2_defconfig | 5 -----
configs/A20-OLinuXino-Lime_defconfig | 6 ------
configs/A20-OLinuXino_MICRO-eMMC_defconfig | 6 ------
configs/A20-OLinuXino_MICRO_defconfig | 6 ------
configs/A20-Olimex-SOM-EVB_defconfig | 6 ------
configs/A20-Olimex-SOM204-EVB-eMMC_defconfig | 5 -----
configs/A20-Olimex-SOM204-EVB_defconfig | 5 -----
configs/A33-OLinuXino_defconfig | 6 ------
configs/Ainol_AW1_defconfig | 6 ------
configs/Ampe_A76_defconfig | 6 ------
configs/Auxtek-T003_defconfig | 6 ------
configs/Auxtek-T004_defconfig | 6 ------
configs/Bananapi_M2_Ultra_defconfig | 4 ----
configs/Bananapi_defconfig | 6 ------
configs/Bananapi_m2m_defconfig | 4 ----
configs/Bananapro_defconfig | 6 ------
configs/CHIP_defconfig | 6 ------
configs/CHIP_pro_defconfig | 4 ----
configs/CSQ_CS908_defconfig | 6 ------
configs/Chuwi_V7_CW0825_defconfig | 6 ------
configs/Colombus_defconfig | 6 ------
configs/Cubieboard2_defconfig | 6 ------
configs/Cubieboard4_defconfig | 6 ------
configs/Cubieboard_defconfig | 6 ------
configs/Cubietruck_defconfig | 5 -----
configs/Cubietruck_plus_defconfig | 6 ------
configs/Empire_electronix_d709_defconfig | 6 ------
configs/Empire_electronix_m712_defconfig | 6 ------
configs/Hummingbird_A31_defconfig | 6 ------
configs/Hyundai_A7HD_defconfig | 6 ------
configs/Itead_Ibox_A20_defconfig | 6 ------
configs/Lamobo_R1_defconfig | 6 ------
configs/LicheePi_Zero_defconfig | 6 ------
configs/Linksprite_pcDuino3_Nano_defconfig | 6 ------
configs/Linksprite_pcDuino3_defconfig | 6 ------
configs/Linksprite_pcDuino_defconfig | 6 ------
configs/MK808C_defconfig | 6 ------
configs/MSI_Primo73_defconfig | 6 ------
configs/MSI_Primo81_defconfig | 6 ------
configs/Marsboard_A10_defconfig | 6 ------
configs/Mele_A1000G_quad_defconfig | 6 ------
configs/Mele_A1000_defconfig | 6 ------
configs/Mele_I7_defconfig | 6 ------
configs/Mele_M3_defconfig | 6 ------
configs/Mele_M5_defconfig | 6 ------
configs/Mele_M9_defconfig | 6 ------
configs/Merrii_A80_Optimus_defconfig | 6 ------
configs/Mini-X_defconfig | 6 ------
configs/Nintendo_NES_Classic_Edition_defconfig | 6 ------
configs/Orangepi_defconfig | 6 ------
configs/Orangepi_mini_defconfig | 6 ------
configs/Sinlinx_SinA31s_defconfig | 6 ------
configs/Sinlinx_SinA33_defconfig | 5 -----
configs/Sinovoip_BPI_M2_defconfig | 6 ------
configs/Sinovoip_BPI_M3_defconfig | 6 ------
configs/Sunchip_CX-A99_defconfig | 6 ------
configs/UTOO_P66_defconfig | 6 ------
configs/Wexler_TAB7200_defconfig | 6 ------
configs/Wits_Pro_A20_DKT_defconfig | 6 ------
configs/Wobo_i5_defconfig | 6 ------
configs/Yones_Toptech_BD1078_defconfig | 6 ------
configs/Yones_Toptech_BS1078_V2_defconfig | 6 ------
configs/a64-olinuxino-emmc_defconfig | 6 ------
configs/a64-olinuxino_defconfig | 6 ------
configs/amarula_a64_relic_defconfig | 6 ------
configs/ba10_tv_box_defconfig | 6 ------
configs/bananapi_m1_plus_defconfig | 5 -----
configs/bananapi_m2_berry_defconfig | 4 ----
configs/bananapi_m2_plus_h3_defconfig | 6 ------
configs/bananapi_m2_plus_h5_defconfig | 6 ------
configs/bananapi_m2_zero_defconfig | 4 ----
configs/bananapi_m64_defconfig | 6 ------
configs/beelink_gs1_defconfig | 5 -----
configs/beelink_x2_defconfig | 5 -----
configs/colorfly_e708_q1_defconfig | 6 ------
configs/difrnce_dit4350_defconfig | 6 ------
configs/dserve_dsrv9703c_defconfig | 6 ------
configs/emlid_neutis_n5_devboard_defconfig | 5 -----
configs/ga10h_v1_1_defconfig | 6 ------
configs/gt90h_v4_defconfig | 6 ------
configs/h8_homlet_v2_defconfig | 6 ------
configs/i12-tvbox_defconfig | 6 ------
configs/iNet_3F_defconfig | 6 ------
configs/iNet_3W_defconfig | 6 ------
configs/iNet_86VS_defconfig | 6 ------
configs/iNet_D978_rev2_defconfig | 6 ------
configs/icnova-a20-swac_defconfig | 6 ------
configs/inet1_defconfig | 6 ------
configs/inet86dz_defconfig | 6 ------
configs/inet97fv2_defconfig | 6 ------
configs/inet98v_rev2_defconfig | 6 ------
configs/inet9f_rev03_defconfig | 6 ------
configs/inet_q972_defconfig | 6 ------
configs/jesurun_q5_defconfig | 6 ------
configs/libretech_all_h3_cc_h2_plus_defconfig | 6 ------
configs/libretech_all_h3_cc_h3_defconfig | 6 ------
configs/libretech_all_h3_cc_h5_defconfig | 6 ------
configs/libretech_all_h3_it_h5_defconfig | 6 ------
configs/libretech_all_h5_cc_h5_defconfig | 6 ------
configs/mixtile_loftq_defconfig | 6 ------
configs/mk802_a10s_defconfig | 6 ------
configs/mk802_defconfig | 6 ------
configs/mk802ii_defconfig | 6 ------
configs/nanopi_a64_defconfig | 6 ------
configs/nanopi_m1_defconfig | 6 ------
configs/nanopi_m1_plus_defconfig | 6 ------
configs/nanopi_neo2_defconfig | 6 ------
configs/nanopi_neo_air_defconfig | 6 ------
configs/nanopi_neo_defconfig | 6 ------
configs/nanopi_neo_plus2_defconfig | 5 -----
configs/oceanic_5205_5inmfd_defconfig | 6 ------
configs/orangepi_2_defconfig | 6 ------
configs/orangepi_lite2_defconfig | 5 -----
configs/orangepi_lite_defconfig | 6 ------
configs/orangepi_one_defconfig | 6 ------
configs/orangepi_one_plus_defconfig | 5 -----
configs/orangepi_pc2_defconfig | 6 ------
configs/orangepi_pc_defconfig | 6 ------
configs/orangepi_pc_plus_defconfig | 6 ------
configs/orangepi_plus2e_defconfig | 6 ------
configs/orangepi_plus_defconfig | 6 ------
configs/orangepi_prime_defconfig | 6 ------
configs/orangepi_r1_defconfig | 4 ----
configs/orangepi_win_defconfig | 6 ------
configs/orangepi_zero_defconfig | 4 ----
configs/orangepi_zero_plus2_defconfig | 6 ------
configs/orangepi_zero_plus2_h3_defconfig | 5 -----
configs/orangepi_zero_plus_defconfig | 6 ------
configs/parrot_r16_defconfig | 5 -----
configs/pine64-lts_defconfig | 6 ------
configs/pine64_plus_defconfig | 6 ------
configs/pine_h64_defconfig | 5 -----
configs/pinebook_defconfig | 5 -----
configs/polaroid_mid2407pxe03_defconfig | 6 ------
configs/polaroid_mid2809pxe04_defconfig | 6 ------
configs/pov_protab2_ips9_defconfig | 6 ------
configs/q8_a13_tablet_defconfig | 6 ------
configs/q8_a23_tablet_800x480_defconfig | 6 ------
configs/q8_a33_tablet_1024x600_defconfig | 6 ------
configs/q8_a33_tablet_800x480_defconfig | 6 ------
configs/r7-tv-dongle_defconfig | 6 ------
configs/sopine_baseboard_defconfig | 6 ------
configs/sun8i_a23_evb_defconfig | 6 ------
configs/sunxi_Gemei_G9_defconfig | 6 ------
configs/tbs_a711_defconfig | 5 -----
configs/teres_i_defconfig | 5 -----
151 files changed, 872 deletions(-)
diff --git a/configs/A10-OLinuXino-Lime_defconfig b/configs/A10-OLinuXino-Lime_defconfig
index 363156c4e2..b835f15b6f 100644
--- a/configs/A10-OLinuXino-Lime_defconfig
+++ b/configs/A10-OLinuXino-Lime_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=480
@@ -11,12 +10,8 @@ CONFIG_I2C1_ENABLE=y
CONFIG_SATAPWR="PC3"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-olinuxino-lime"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
@@ -25,4 +20,3 @@ CONFIG_AXP_ALDO4_VOLT=2800
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A10s-OLinuXino-M_defconfig b/configs/A10s-OLinuXino-M_defconfig
index b31d6ac2f5..4145f720a3 100644
--- a/configs/A10s-OLinuXino-M_defconfig
+++ b/configs/A10s-OLinuXino-M_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
@@ -9,16 +8,11 @@ CONFIG_MMC1_CD_PIN="PG13"
CONFIG_MMC_SUNXI_SLOT_EXTRA=1
CONFIG_USB1_VBUS_PIN="PB10"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-olinuxino-micro"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_AXP152_POWER=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A13-OLinuXinoM_defconfig b/configs/A13-OLinuXinoM_defconfig
index fe5b20f5d8..a879021e7f 100644
--- a/configs/A13-OLinuXinoM_defconfig
+++ b/configs/A13-OLinuXinoM_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -13,13 +12,8 @@ CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
CONFIG_VIDEO_LCD_POWER="PB10"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino-micro"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUNXI_NO_PMIC=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A13-OLinuXino_defconfig b/configs/A13-OLinuXino_defconfig
index 5163b331f8..bb68698fd6 100644
--- a/configs/A13-OLinuXino_defconfig
+++ b/configs/A13-OLinuXino_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -15,14 +14,11 @@ CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
CONFIG_CMD_USB_MASS_STORAGE=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_AXP_ALDO3_VOLT=3300
@@ -30,4 +26,3 @@ CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-OLinuXino-Lime2-eMMC_defconfig b/configs/A20-OLinuXino-Lime2-eMMC_defconfig
index 7dc736e9e1..40b3883971 100644
--- a/configs/A20-OLinuXino-Lime2-eMMC_defconfig
+++ b/configs/A20-OLinuXino-Lime2-eMMC_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -13,14 +12,11 @@ CONFIG_SATAPWR="PC3"
CONFIG_SPL_SPI_SUNXI=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
CONFIG_CMD_USB_MASS_STORAGE=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime2-emmc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
@@ -36,4 +32,3 @@ CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-OLinuXino-Lime2_defconfig b/configs/A20-OLinuXino-Lime2_defconfig
index ea97bbb052..2b082cab59 100644
--- a/configs/A20-OLinuXino-Lime2_defconfig
+++ b/configs/A20-OLinuXino-Lime2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -11,14 +10,11 @@ CONFIG_I2C1_ENABLE=y
CONFIG_SATAPWR="PC3"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
CONFIG_CMD_USB_MASS_STORAGE=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
@@ -34,4 +30,3 @@ CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-OLinuXino-Lime_defconfig b/configs/A20-OLinuXino-Lime_defconfig
index 3fbf874618..975df4e778 100644
--- a/configs/A20-OLinuXino-Lime_defconfig
+++ b/configs/A20-OLinuXino-Lime_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -9,12 +8,8 @@ CONFIG_I2C1_ENABLE=y
CONFIG_SATAPWR="PC3"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -24,4 +19,3 @@ CONFIG_AXP_ALDO4_VOLT=2800
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-OLinuXino_MICRO-eMMC_defconfig b/configs/A20-OLinuXino_MICRO-eMMC_defconfig
index 2802df63b4..0ccb609a22 100644
--- a/configs/A20-OLinuXino_MICRO-eMMC_defconfig
+++ b/configs/A20-OLinuXino_MICRO-eMMC_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -11,12 +10,8 @@ CONFIG_VIDEO_VGA=y
CONFIG_SATAPWR="PB8"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-micro-emmc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -27,4 +22,3 @@ CONFIG_AXP_ALDO4_VOLT=2800
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-OLinuXino_MICRO_defconfig b/configs/A20-OLinuXino_MICRO_defconfig
index fe72b1fb07..0a68fd9e6a 100644
--- a/configs/A20-OLinuXino_MICRO_defconfig
+++ b/configs/A20-OLinuXino_MICRO_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -12,12 +11,8 @@ CONFIG_VIDEO_VGA=y
CONFIG_SATAPWR="PB8"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-micro"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -28,4 +23,3 @@ CONFIG_AXP_ALDO4_VOLT=2800
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-Olimex-SOM-EVB_defconfig b/configs/A20-Olimex-SOM-EVB_defconfig
index 696a211e49..5b5ed3bb0a 100644
--- a/configs/A20-Olimex-SOM-EVB_defconfig
+++ b/configs/A20-Olimex-SOM-EVB_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -13,12 +12,8 @@ CONFIG_USB0_VBUS_DET="PH5"
CONFIG_SATAPWR="PC3"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olimex-som-evb"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
@@ -29,4 +24,3 @@ CONFIG_AXP_ALDO4_VOLT=2800
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig b/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig
index ba18d1aac4..ee3b752ec3 100644
--- a/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig
+++ b/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -13,12 +12,9 @@ CONFIG_SATAPWR="PC3"
CONFIG_GMAC_TX_DELAY=4
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olimex-som204-evb-emmc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_PHY_ADDR=3
@@ -34,4 +30,3 @@ CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A20-Olimex-SOM204-EVB_defconfig b/configs/A20-Olimex-SOM204-EVB_defconfig
index 9515ba36aa..0272911ecf 100644
--- a/configs/A20-Olimex-SOM204-EVB_defconfig
+++ b/configs/A20-Olimex-SOM204-EVB_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -12,12 +11,9 @@ CONFIG_SATAPWR="PC3"
CONFIG_GMAC_TX_DELAY=4
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olimex-som204-evb"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_PHY_ADDR=3
@@ -33,4 +29,3 @@ CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/A33-OLinuXino_defconfig b/configs/A33-OLinuXino_defconfig
index 3c6ddad62a..5f4149861a 100644
--- a/configs/A33-OLinuXino_defconfig
+++ b/configs/A33-OLinuXino_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=432
@@ -16,11 +15,6 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
CONFIG_VIDEO_LCD_BL_EN="PB2"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-olinuxino"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DCDC1_VOLT=3300
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Ainol_AW1_defconfig b/configs/Ainol_AW1_defconfig
index d66ad1bb70..72aac60c16 100644
--- a/configs/Ainol_AW1_defconfig
+++ b/configs/Ainol_AW1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -14,11 +13,6 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-ainol-aw1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Ampe_A76_defconfig b/configs/Ampe_A76_defconfig
index b36a973705..1f547334c2 100644
--- a/configs/Ampe_A76_defconfig
+++ b/configs/Ampe_A76_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
@@ -15,12 +14,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-ampe-a76"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Auxtek-T003_defconfig b/configs/Auxtek-T003_defconfig
index 2be5edc756..5c72c97ecb 100644
--- a/configs/Auxtek-T003_defconfig
+++ b/configs/Auxtek-T003_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -8,14 +7,9 @@ CONFIG_DRAM_EMR1=0
CONFIG_USB1_VBUS_PIN="PB10"
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-auxtek-t003"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP152_POWER=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Auxtek-T004_defconfig b/configs/Auxtek-T004_defconfig
index 5fbefd2a97..1cd13b90fc 100644
--- a/configs/Auxtek-T004_defconfig
+++ b/configs/Auxtek-T004_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
CONFIG_USB1_VBUS_PIN="PG13"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-auxtek-t004"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP152_POWER=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Bananapi_M2_Ultra_defconfig b/configs/Bananapi_M2_Ultra_defconfig
index 31a37e9675..e3d676708d 100644
--- a/configs/Bananapi_M2_Ultra_defconfig
+++ b/configs/Bananapi_M2_Ultra_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_R40=y
CONFIG_DRAM_CLK=576
@@ -11,10 +10,8 @@ CONFIG_USB1_VBUS_PIN="PH23"
CONFIG_USB2_VBUS_PIN="PH23"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="sun8i-r40-bananapi-m2-ultra"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_RGMII=y
CONFIG_SUN8I_EMAC=y
@@ -23,4 +20,3 @@ CONFIG_AXP_ELDO3_VOLT=1200
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Bananapi_defconfig b/configs/Bananapi_defconfig
index 6471a2c74e..b309171d04 100644
--- a/configs/Bananapi_defconfig
+++ b/configs/Bananapi_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -9,12 +8,8 @@ CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-bananapi"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NETCONSOLE=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
@@ -24,4 +19,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Bananapi_m2m_defconfig b/configs/Bananapi_m2m_defconfig
index 576262215b..2649c7e84a 100644
--- a/configs/Bananapi_m2m_defconfig
+++ b/configs/Bananapi_m2m_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=600
@@ -10,11 +9,8 @@ CONFIG_MMC0_CD_PIN="PB4"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB0_ID_DET="PH8"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-bananapi-m2m"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/Bananapro_defconfig b/configs/Bananapro_defconfig
index e9f4f3086a..0cec760ffa 100644
--- a/configs/Bananapro_defconfig
+++ b/configs/Bananapro_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -11,12 +10,8 @@ CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-bananapro"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NETCONSOLE=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
@@ -27,4 +22,3 @@ CONFIG_AXP_ALDO4_VOLT=2500
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/CHIP_defconfig b/configs/CHIP_defconfig
index f28f5fc89c..a373dfd078 100644
--- a/configs/CHIP_defconfig
+++ b/configs/CHIP_defconfig
@@ -1,19 +1,14 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_TIMINGS_DDR3_800E_1066G_1333J=y
CONFIG_USB0_VBUS_PIN="PB10"
CONFIG_VIDEO_COMPOSITE=y
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
CONFIG_CMD_USB_MASS_STORAGE=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-r8-chip"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DFU_RAM=y
# CONFIG_MMC is not set
CONFIG_AXP_ALDO3_VOLT=3300
@@ -22,4 +17,3 @@ CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/CHIP_pro_defconfig b/configs/CHIP_pro_defconfig
index 844b6a6143..3bd8b2a541 100644
--- a/configs/CHIP_pro_defconfig
+++ b/configs/CHIP_pro_defconfig
@@ -1,11 +1,9 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_TIMINGS_DDR3_800E_1066G_1333J=y
CONFIG_USB0_VBUS_PIN="PB10"
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
# CONFIG_CMD_FLASH is not set
CONFIG_CMD_MTDPARTS=y
@@ -15,7 +13,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun5i-gr8-chip-pro"
CONFIG_ENV_IS_IN_UBI=y
CONFIG_ENV_UBI_PART="UBI"
CONFIG_ENV_UBI_VOLUME="uboot-env"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_MMC is not set
CONFIG_MTD=y
CONFIG_MTD_RAW_NAND=y
@@ -28,5 +25,4 @@ CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_USB_FUNCTION_MASS_STORAGE=y
diff --git a/configs/CSQ_CS908_defconfig b/configs/CSQ_CS908_defconfig
index a3470d64e0..f9026a422d 100644
--- a/configs/CSQ_CS908_defconfig
+++ b/configs/CSQ_CS908_defconfig
@@ -1,17 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=432
CONFIG_USB1_VBUS_PIN=""
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-cs908"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
@@ -20,4 +15,3 @@ CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Chuwi_V7_CW0825_defconfig b/configs/Chuwi_V7_CW0825_defconfig
index a6693435b9..9af5eb3cdb 100644
--- a/configs/Chuwi_V7_CW0825_defconfig
+++ b/configs/Chuwi_V7_CW0825_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=408
@@ -14,14 +13,9 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_HITACHI_TX18D42VM=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-chuwi-v7-cw0825"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_VIDEO_LCD_SPI_CS="PA0"
CONFIG_VIDEO_LCD_SPI_SCLK="PA1"
CONFIG_VIDEO_LCD_SPI_MOSI="PA2"
diff --git a/configs/Colombus_defconfig b/configs/Colombus_defconfig
index cc59f5dc47..f70f92e0a6 100644
--- a/configs/Colombus_defconfig
+++ b/configs/Colombus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=240
@@ -17,11 +16,7 @@ CONFIG_VIDEO_LCD_PANEL_I2C_SDA="PA23"
CONFIG_VIDEO_LCD_PANEL_I2C_SCL="PA24"
CONFIG_VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-colombus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
CONFIG_MII=y
@@ -29,4 +24,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_AXP_ALDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Cubieboard2_defconfig b/configs/Cubieboard2_defconfig
index 0c05ca4604..0c7aafd25a 100644
--- a/configs/Cubieboard2_defconfig
+++ b/configs/Cubieboard2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=480
@@ -8,12 +7,8 @@ CONFIG_MMC0_CD_PIN="PH1"
CONFIG_SATAPWR="PB8"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-cubieboard2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Cubieboard4_defconfig b/configs/Cubieboard4_defconfig
index 84280a2149..90b2c69e5f 100644
--- a/configs/Cubieboard4_defconfig
+++ b/configs/Cubieboard4_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN9I=y
CONFIG_DRAM_CLK=672
@@ -12,10 +11,5 @@ CONFIG_USB0_ID_DET="PH16"
CONFIG_USB1_VBUS_PIN="PH14"
CONFIG_USB3_VBUS_PIN="PH15"
CONFIG_AXP_GPIO=y
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun9i-a80-cubieboard4"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP809_POWER=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Cubieboard_defconfig b/configs/Cubieboard_defconfig
index ad2a006974..2b96c113ad 100644
--- a/configs/Cubieboard_defconfig
+++ b/configs/Cubieboard_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=480
@@ -8,16 +7,11 @@ CONFIG_MMC0_CD_PIN="PH1"
CONFIG_SATAPWR="PB8"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-cubieboard"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Cubietruck_defconfig b/configs/Cubietruck_defconfig
index bc4d4a27eb..32c44ff382 100644
--- a/configs/Cubietruck_defconfig
+++ b/configs/Cubietruck_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -13,14 +12,11 @@ CONFIG_SATAPWR="PH12"
CONFIG_GMAC_TX_DELAY=1
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_DFU=y
CONFIG_CMD_USB_MASS_STORAGE=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-cubietruck"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
@@ -32,4 +28,3 @@ CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Cubietruck_plus_defconfig b/configs/Cubietruck_plus_defconfig
index 79763c1457..7717feb56e 100644
--- a/configs/Cubietruck_plus_defconfig
+++ b/configs/Cubietruck_plus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A83T=y
CONFIG_DRAM_CLK=672
@@ -15,12 +14,8 @@ CONFIG_USB2_VBUS_PIN="PL6"
CONFIG_I2C0_ENABLE=y
CONFIG_AXP_GPIO=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-cubietruck-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_PHY_REALTEK=y
CONFIG_SUN8I_EMAC=y
CONFIG_AXP_DLDO3_VOLT=2500
@@ -29,4 +24,3 @@ CONFIG_AXP_FLDO1_VOLT=1200
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Empire_electronix_d709_defconfig b/configs/Empire_electronix_d709_defconfig
index cfeb356ad9..8e284a3718 100644
--- a/configs/Empire_electronix_d709_defconfig
+++ b/configs/Empire_electronix_d709_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-empire-electronix-d709"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Empire_electronix_m712_defconfig b/configs/Empire_electronix_m712_defconfig
index 24a0493750..26cc0e7ed6 100644
--- a/configs/Empire_electronix_m712_defconfig
+++ b/configs/Empire_electronix_m712_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -15,12 +14,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-empire-electronix-m712"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Hummingbird_A31_defconfig b/configs/Hummingbird_A31_defconfig
index aa97e5a5d3..15984ec5a3 100644
--- a/configs/Hummingbird_A31_defconfig
+++ b/configs/Hummingbird_A31_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=251
@@ -9,11 +8,7 @@ CONFIG_USB2_VBUS_PIN=""
CONFIG_VIDEO_VGA_VIA_LCD=y
CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN="PH25"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-hummingbird"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_AXP_ALDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Hyundai_A7HD_defconfig b/configs/Hyundai_A7HD_defconfig
index ff84e2d5c7..01580a8488 100644
--- a/configs/Hyundai_A7HD_defconfig
+++ b/configs/Hyundai_A7HD_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_EMR1=4
@@ -15,11 +14,6 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW is not set
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-hyundai-a7hd"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Itead_Ibox_A20_defconfig b/configs/Itead_Ibox_A20_defconfig
index 71ffb9d45f..9ddfb6f5e2 100644
--- a/configs/Itead_Ibox_A20_defconfig
+++ b/configs/Itead_Ibox_A20_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=480
@@ -8,12 +7,8 @@ CONFIG_MMC0_CD_PIN="PH1"
CONFIG_SATAPWR="PB8"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-itead-ibox"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Lamobo_R1_defconfig b/configs/Lamobo_R1_defconfig
index 869fd7463f..c3cb3654bb 100644
--- a/configs/Lamobo_R1_defconfig
+++ b/configs/Lamobo_R1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -10,12 +9,8 @@ CONFIG_SATAPWR="PB3"
CONFIG_GMAC_TX_DELAY=4
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-lamobo-r1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_B53_SWITCH=y
CONFIG_B53_PHY_PORTS=0x1f
@@ -26,4 +21,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/LicheePi_Zero_defconfig b/configs/LicheePi_Zero_defconfig
index d86d255ff0..04d7b64504 100644
--- a/configs/LicheePi_Zero_defconfig
+++ b/configs/LicheePi_Zero_defconfig
@@ -1,13 +1,7 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_V3S=y
CONFIG_DRAM_CLK=360
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-v3s-licheepi-zero"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_NETDEVICES is not set
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Linksprite_pcDuino3_Nano_defconfig b/configs/Linksprite_pcDuino3_Nano_defconfig
index 891251ed47..7377debc9b 100644
--- a/configs/Linksprite_pcDuino3_Nano_defconfig
+++ b/configs/Linksprite_pcDuino3_Nano_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=408
@@ -10,12 +9,8 @@ CONFIG_SATAPWR="PH2"
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3-nano"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
@@ -24,4 +19,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Linksprite_pcDuino3_defconfig b/configs/Linksprite_pcDuino3_defconfig
index 9444bb5015..ad78152a04 100644
--- a/configs/Linksprite_pcDuino3_defconfig
+++ b/configs/Linksprite_pcDuino3_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=480
@@ -8,12 +7,8 @@ CONFIG_DRAM_ZQ=122
CONFIG_SATAPWR="PH2"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Linksprite_pcDuino_defconfig b/configs/Linksprite_pcDuino_defconfig
index f31d29816e..e5166e9665 100644
--- a/configs/Linksprite_pcDuino_defconfig
+++ b/configs/Linksprite_pcDuino_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_USB1_VBUS_PIN=""
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-pcduino"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/MK808C_defconfig b/configs/MK808C_defconfig
index 75b5221230..b323e3232c 100644
--- a/configs/MK808C_defconfig
+++ b/configs/MK808C_defconfig
@@ -1,16 +1,10 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-mk808c"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/MSI_Primo73_defconfig b/configs/MSI_Primo73_defconfig
index 52f6927fc2..69561be71d 100644
--- a/configs/MSI_Primo73_defconfig
+++ b/configs/MSI_Primo73_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -10,10 +9,5 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-primo73"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/MSI_Primo81_defconfig b/configs/MSI_Primo81_defconfig
index 3fbd89f4bd..29c2c682ef 100644
--- a/configs/MSI_Primo81_defconfig
+++ b/configs/MSI_Primo81_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=360
@@ -13,15 +12,10 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
CONFIG_VIDEO_LCD_BL_PWM="PH13"
CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-primo81"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_VIDEO_LCD_SSD2828_TX_CLK=27
CONFIG_VIDEO_LCD_SSD2828_RESET="PA26"
CONFIG_VIDEO_LCD_SPI_CS="PH9"
diff --git a/configs/Marsboard_A10_defconfig b/configs/Marsboard_A10_defconfig
index b1214e07dc..be608698c7 100644
--- a/configs/Marsboard_A10_defconfig
+++ b/configs/Marsboard_A10_defconfig
@@ -1,15 +1,10 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-marsboard"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
@@ -17,4 +12,3 @@ CONFIG_SUNXI_NO_PMIC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig
index b9ff12e0f3..babe9f11e5 100644
--- a/configs/Mele_A1000G_quad_defconfig
+++ b/configs/Mele_A1000G_quad_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=120
@@ -8,11 +7,7 @@ CONFIG_INITIAL_USB_SCAN_DELAY=2000
CONFIG_USB1_VBUS_PIN="PC27"
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-mele-a1000g-quad"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
@@ -23,4 +18,3 @@ CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_A1000_defconfig b/configs/Mele_A1000_defconfig
index c23413eff0..20906ff5f5 100644
--- a/configs/Mele_A1000_defconfig
+++ b/configs/Mele_A1000_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_MACPWR="PH15"
@@ -8,16 +7,11 @@ CONFIG_VIDEO_VGA=y
CONFIG_VIDEO_COMPOSITE=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-a1000"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_I7_defconfig b/configs/Mele_I7_defconfig
index b4825f2842..1282d8763a 100644
--- a/configs/Mele_I7_defconfig
+++ b/configs/Mele_I7_defconfig
@@ -1,17 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=120
CONFIG_USB1_VBUS_PIN="PC27"
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-i7"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
@@ -21,4 +16,3 @@ CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_M3_defconfig b/configs/Mele_M3_defconfig
index ba1018fce1..60d15ab05b 100644
--- a/configs/Mele_M3_defconfig
+++ b/configs/Mele_M3_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -9,15 +8,10 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_VIDEO_VGA=y
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-m3"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_M5_defconfig b/configs/Mele_M5_defconfig
index f8b71e9c3c..8900c7a1f1 100644
--- a/configs/Mele_M5_defconfig
+++ b/configs/Mele_M5_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -9,12 +8,8 @@ CONFIG_MMC0_CD_PIN="PH1"
CONFIG_VIDEO_COMPOSITE=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-m5"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
@@ -22,4 +17,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mele_M9_defconfig b/configs/Mele_M9_defconfig
index 4051ade721..b1b3b7af16 100644
--- a/configs/Mele_M9_defconfig
+++ b/configs/Mele_M9_defconfig
@@ -1,17 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=120
CONFIG_USB1_VBUS_PIN="PC27"
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-m9"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
@@ -21,4 +16,3 @@ CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Merrii_A80_Optimus_defconfig b/configs/Merrii_A80_Optimus_defconfig
index a691e4869f..15db3962fe 100644
--- a/configs/Merrii_A80_Optimus_defconfig
+++ b/configs/Merrii_A80_Optimus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN9I=y
CONFIG_DRAM_CLK=672
@@ -12,10 +11,5 @@ CONFIG_USB0_ID_DET="PH3"
CONFIG_USB1_VBUS_PIN="PH4"
CONFIG_USB3_VBUS_PIN="PH5"
CONFIG_AXP_GPIO=y
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun9i-a80-optimus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP809_POWER=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Mini-X_defconfig b/configs/Mini-X_defconfig
index 29e32a4273..30468e16c8 100644
--- a/configs/Mini-X_defconfig
+++ b/configs/Mini-X_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_USB0_VBUS_PIN="PB9"
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mini-xplus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Nintendo_NES_Classic_Edition_defconfig b/configs/Nintendo_NES_Classic_Edition_defconfig
index b2e8b83b76..ba9cc58a54 100644
--- a/configs/Nintendo_NES_Classic_Edition_defconfig
+++ b/configs/Nintendo_NES_Classic_Edition_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=600
@@ -9,13 +8,9 @@ CONFIG_DRAM_ODT_EN=y
CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
CONFIG_AXP_GPIO=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
# CONFIG_CMD_FLASH is not set
CONFIG_CMD_MTDPARTS=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-nintendo-nes-classic-edition"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_MMC is not set
CONFIG_MTD=y
CONFIG_MTD_RAW_NAND=y
@@ -26,5 +21,4 @@ CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_AXP_ELDO2_VOLT=1800
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_USB_FUNCTION_MASS_STORAGE=y
diff --git a/configs/Orangepi_defconfig b/configs/Orangepi_defconfig
index 8254551978..af8c17defb 100644
--- a/configs/Orangepi_defconfig
+++ b/configs/Orangepi_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -12,12 +11,8 @@ CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-orangepi"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
@@ -26,4 +21,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Orangepi_mini_defconfig b/configs/Orangepi_mini_defconfig
index 0bba89d606..43ee76fa18 100644
--- a/configs/Orangepi_mini_defconfig
+++ b/configs/Orangepi_mini_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -14,12 +13,8 @@ CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-orangepi-mini"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
@@ -28,4 +23,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Sinlinx_SinA31s_defconfig b/configs/Sinlinx_SinA31s_defconfig
index d7bd848992..74fb9e3d0a 100644
--- a/configs/Sinlinx_SinA31s_defconfig
+++ b/configs/Sinlinx_SinA31s_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=432
@@ -11,15 +10,10 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=3
CONFIG_USB1_VBUS_PIN=""
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-sina31s"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig
index c68d8315aa..9f29870902 100644
--- a/configs/Sinlinx_SinA33_defconfig
+++ b/configs/Sinlinx_SinA33_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=552
@@ -13,16 +12,12 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CMD_DFU=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-sinlinx-sina33"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DFU_RAM=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_USB_FUNCTION_MASS_STORAGE=y
diff --git a/configs/Sinovoip_BPI_M2_defconfig b/configs/Sinovoip_BPI_M2_defconfig
index b8a2d47742..b2ecf4ee92 100644
--- a/configs/Sinovoip_BPI_M2_defconfig
+++ b/configs/Sinovoip_BPI_M2_defconfig
@@ -1,17 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=432
CONFIG_USB1_VBUS_PIN=""
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-sinovoip-bpi-m2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_AXP_ALDO2_VOLT=1800
CONFIG_AXP_DLDO1_VOLT=3000
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Sinovoip_BPI_M3_defconfig b/configs/Sinovoip_BPI_M3_defconfig
index 6188e69e12..b1b75bf5a1 100644
--- a/configs/Sinovoip_BPI_M3_defconfig
+++ b/configs/Sinovoip_BPI_M3_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A83T=y
CONFIG_DRAM_TYPE=7
@@ -16,12 +15,8 @@ CONFIG_USB1_VBUS_PIN="PD24"
CONFIG_AXP_GPIO=y
CONFIG_SATAPWR="PD25"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-bananapi-m3"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_PHY_REALTEK=y
CONFIG_SUN8I_EMAC=y
CONFIG_AXP_DCDC5_VOLT=1200
@@ -30,4 +25,3 @@ CONFIG_AXP_SW_ON=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Sunchip_CX-A99_defconfig b/configs/Sunchip_CX-A99_defconfig
index 5e2ec3fae1..ca175234e5 100644
--- a/configs/Sunchip_CX-A99_defconfig
+++ b/configs/Sunchip_CX-A99_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN9I=y
CONFIG_DRAM_CLK=600
@@ -12,9 +11,4 @@ CONFIG_USB0_VBUS_PIN="PH15"
CONFIG_USB1_VBUS_PIN="PL7"
CONFIG_USB3_VBUS_PIN="PL8"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun9i-a80-cx-a99"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/UTOO_P66_defconfig b/configs/UTOO_P66_defconfig
index a562b09808..0c18423220 100644
--- a/configs/UTOO_P66_defconfig
+++ b/configs/UTOO_P66_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
@@ -20,13 +19,8 @@ CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_TL059WV5C0=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-utoo-p66"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Wexler_TAB7200_defconfig b/configs/Wexler_TAB7200_defconfig
index 019549df01..2253dd3d98 100644
--- a/configs/Wexler_TAB7200_defconfig
+++ b/configs/Wexler_TAB7200_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -13,13 +12,8 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-wexler-tab7200"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Wits_Pro_A20_DKT_defconfig b/configs/Wits_Pro_A20_DKT_defconfig
index 08cbba2a57..8630f39a5f 100644
--- a/configs/Wits_Pro_A20_DKT_defconfig
+++ b/configs/Wits_Pro_A20_DKT_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -12,12 +11,8 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-wits-pro-a20-dkt"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
@@ -26,4 +21,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Wobo_i5_defconfig b/configs/Wobo_i5_defconfig
index cc28226943..1cfd683573 100644
--- a/configs/Wobo_i5_defconfig
+++ b/configs/Wobo_i5_defconfig
@@ -1,21 +1,15 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
CONFIG_MMC0_CD_PIN="PB3"
CONFIG_USB1_VBUS_PIN="PG12"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-wobo-i5"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_ALDO3_VOLT=3300
CONFIG_AXP_ALDO4_VOLT=3300
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Yones_Toptech_BD1078_defconfig b/configs/Yones_Toptech_BD1078_defconfig
index da8a891bbf..6fb1a7c186 100644
--- a/configs/Yones_Toptech_BD1078_defconfig
+++ b/configs/Yones_Toptech_BD1078_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=408
@@ -19,11 +18,6 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW is not set
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-yones-toptech-bd1078"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/Yones_Toptech_BS1078_V2_defconfig b/configs/Yones_Toptech_BS1078_V2_defconfig
index 6fd0920558..a44207e334 100644
--- a/configs/Yones_Toptech_BS1078_V2_defconfig
+++ b/configs/Yones_Toptech_BS1078_V2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=420
@@ -16,11 +15,6 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
CONFIG_VIDEO_LCD_BL_PWM="PH13"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-yones-toptech-bs1078-v2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/a64-olinuxino-emmc_defconfig b/configs/a64-olinuxino-emmc_defconfig
index 8443a6dae9..d2618d5e57 100644
--- a/configs/a64-olinuxino-emmc_defconfig
+++ b/configs/a64-olinuxino-emmc_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-olinuxino-emmc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/a64-olinuxino_defconfig b/configs/a64-olinuxino_defconfig
index 1ba59cc21b..27243610ca 100644
--- a/configs/a64-olinuxino_defconfig
+++ b/configs/a64-olinuxino_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-olinuxino"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/amarula_a64_relic_defconfig b/configs/amarula_a64_relic_defconfig
index e31e21bbfb..9567d676ca 100644
--- a/configs/amarula_a64_relic_defconfig
+++ b/configs/amarula_a64_relic_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_VIDEO_DE2 is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-amarula-relic"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/ba10_tv_box_defconfig b/configs/ba10_tv_box_defconfig
index 18b880ea39..df196469ae 100644
--- a/configs/ba10_tv_box_defconfig
+++ b/configs/ba10_tv_box_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=384
@@ -9,15 +8,10 @@ CONFIG_USB0_VBUS_PIN="PB9"
CONFIG_USB2_VBUS_PIN="PH12"
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-ba10-tvbox"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/bananapi_m1_plus_defconfig b/configs/bananapi_m1_plus_defconfig
index be61a82012..3813b6e89a 100644
--- a/configs/bananapi_m1_plus_defconfig
+++ b/configs/bananapi_m1_plus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=432
@@ -9,12 +8,8 @@ CONFIG_VIDEO_COMPOSITE=y
CONFIG_GMAC_TX_DELAY=3
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-bananapi-m1-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NETCONSOLE=y
CONFIG_SCSI_AHCI=y
CONFIG_ETH_DESIGNWARE=y
diff --git a/configs/bananapi_m2_berry_defconfig b/configs/bananapi_m2_berry_defconfig
index 9b028783a1..256d9fc06c 100644
--- a/configs/bananapi_m2_berry_defconfig
+++ b/configs/bananapi_m2_berry_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_R40=y
CONFIG_DRAM_CLK=576
@@ -8,10 +7,8 @@ CONFIG_MMC0_CD_PIN="PH13"
CONFIG_USB1_VBUS_PIN="PH23"
CONFIG_AHCI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="sun8i-v40-bananapi-m2-berry"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SCSI_AHCI=y
CONFIG_RGMII=y
CONFIG_SUN8I_EMAC=y
@@ -20,4 +17,3 @@ CONFIG_AXP_ELDO3_VOLT=1200
CONFIG_SCSI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/bananapi_m2_plus_h3_defconfig b/configs/bananapi_m2_plus_h3_defconfig
index d516125460..21c6aa6b66 100644
--- a/configs/bananapi_m2_plus_h3_defconfig
+++ b/configs/bananapi_m2_plus_h3_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
CONFIG_MACPWR="PD6"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-bananapi-m2-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/bananapi_m2_plus_h5_defconfig b/configs/bananapi_m2_plus_h5_defconfig
index 94d18cebe9..afed137243 100644
--- a/configs/bananapi_m2_plus_h5_defconfig
+++ b/configs/bananapi_m2_plus_h5_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_MACPWR="PD6"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-bananapi-m2-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/bananapi_m2_zero_defconfig b/configs/bananapi_m2_zero_defconfig
index cecea59c68..f95c7faf7e 100644
--- a/configs/bananapi_m2_zero_defconfig
+++ b/configs/bananapi_m2_zero_defconfig
@@ -5,8 +5,4 @@ CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=408
CONFIG_MMC0_CD_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/bananapi_m64_defconfig b/configs/bananapi_m64_defconfig
index c26fd0c581..7f31cf0055 100644
--- a/configs/bananapi_m64_defconfig
+++ b/configs/bananapi_m64_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_MMC0_CD_PIN="PH13"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-bananapi-m64"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/beelink_gs1_defconfig b/configs/beelink_gs1_defconfig
index 818931465e..42e38975c0 100644
--- a/configs/beelink_gs1_defconfig
+++ b/configs/beelink_gs1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
@@ -8,11 +7,7 @@ CONFIG_MMC0_CD_PIN="PF6"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-beelink-gs1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/beelink_x2_defconfig b/configs/beelink_x2_defconfig
index d314cfa170..7aca82cbd8 100644
--- a/configs/beelink_x2_defconfig
+++ b/configs/beelink_x2_defconfig
@@ -5,11 +5,6 @@ CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=567
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-beelink-x2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/colorfly_e708_q1_defconfig b/configs/colorfly_e708_q1_defconfig
index 82bf8b4c53..e0bcaf3508 100644
--- a/configs/colorfly_e708_q1_defconfig
+++ b/configs/colorfly_e708_q1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=432
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_BL_EN="PA25"
CONFIG_VIDEO_LCD_BL_PWM="PH13"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-colorfly-e708-q1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_AXP_DLDO2_VOLT=1800
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/difrnce_dit4350_defconfig b/configs/difrnce_dit4350_defconfig
index c9cccd6d6f..12088d4d9e 100644
--- a/configs/difrnce_dit4350_defconfig
+++ b/configs/difrnce_dit4350_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -15,12 +14,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-difrnce-dit4350"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/dserve_dsrv9703c_defconfig b/configs/dserve_dsrv9703c_defconfig
index 80c1d24b14..a19b89024e 100644
--- a/configs/dserve_dsrv9703c_defconfig
+++ b/configs/dserve_dsrv9703c_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_MMC0_CD_PIN="PH1"
@@ -14,11 +13,6 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-dserve-dsrv9703c"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/emlid_neutis_n5_devboard_defconfig b/configs/emlid_neutis_n5_devboard_defconfig
index 9b106ab40f..2a2392c413 100644
--- a/configs/emlid_neutis_n5_devboard_defconfig
+++ b/configs/emlid_neutis_n5_devboard_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=408
@@ -8,8 +7,4 @@ CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-emlid-neutis-n5-devboard"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/configs/ga10h_v1_1_defconfig b/configs/ga10h_v1_1_defconfig
index 954e73c51d..0b7af23551 100644
--- a/configs/ga10h_v1_1_defconfig
+++ b/configs/ga10h_v1_1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=432
@@ -17,14 +16,9 @@ CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-ga10h-v1.1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/gt90h_v4_defconfig b/configs/gt90h_v4_defconfig
index 53098762de..dd64241745 100644
--- a/configs/gt90h_v4_defconfig
+++ b/configs/gt90h_v4_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=480
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-gt90h-v4"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/h8_homlet_v2_defconfig b/configs/h8_homlet_v2_defconfig
index fb18004b68..c6246c8e81 100644
--- a/configs/h8_homlet_v2_defconfig
+++ b/configs/h8_homlet_v2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A83T=y
CONFIG_DRAM_CLK=480
@@ -10,14 +9,9 @@ CONFIG_USB0_VBUS_PIN="PL5"
CONFIG_USB1_VBUS_PIN="PL6"
CONFIG_AXP_GPIO=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-allwinner-h8homlet-v2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO4_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/i12-tvbox_defconfig b/configs/i12-tvbox_defconfig
index b15c9de054..8543780a7d 100644
--- a/configs/i12-tvbox_defconfig
+++ b/configs/i12-tvbox_defconfig
@@ -1,21 +1,15 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
CONFIG_MACPWR="PH21"
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-i12-tvbox"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/iNet_3F_defconfig b/configs/iNet_3F_defconfig
index d4f256f899..8bd104a5fb 100644
--- a/configs/iNet_3F_defconfig
+++ b/configs/iNet_3F_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=432
@@ -14,11 +13,6 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-inet-3f"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/iNet_3W_defconfig b/configs/iNet_3W_defconfig
index 3bafd4c896..d996075510 100644
--- a/configs/iNet_3W_defconfig
+++ b/configs/iNet_3W_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=408
@@ -14,11 +13,6 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-inet-3w"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/iNet_86VS_defconfig b/configs/iNet_86VS_defconfig
index 771cdfa3c9..16d08448d0 100644
--- a/configs/iNet_86VS_defconfig
+++ b/configs/iNet_86VS_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=408
@@ -13,12 +12,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-inet-86vs"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/iNet_D978_rev2_defconfig b/configs/iNet_D978_rev2_defconfig
index 598465d93e..ff271f343e 100644
--- a/configs/iNet_D978_rev2_defconfig
+++ b/configs/iNet_D978_rev2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=456
@@ -17,13 +16,8 @@ CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-inet-d978-rev2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/icnova-a20-swac_defconfig b/configs/icnova-a20-swac_defconfig
index f9b8c73da2..d6da5acd5e 100644
--- a/configs/icnova-a20-swac_defconfig
+++ b/configs/icnova-a20-swac_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN7I=y
CONFIG_DRAM_CLK=384
@@ -13,16 +12,11 @@ CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:24,pclk_khz:33000,le:45,ri:209,up:22,lo
CONFIG_VIDEO_LCD_POWER="PH22"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_CMD_UNZIP=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-icnova-swac"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_MII=y
CONFIG_SUN7I_GMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet1_defconfig b/configs/inet1_defconfig
index 293a7476ca..ca898c25a8 100644
--- a/configs/inet1_defconfig
+++ b/configs/inet1_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=432
@@ -14,13 +13,8 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-inet1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet86dz_defconfig b/configs/inet86dz_defconfig
index 0fdcf2b9d6..dbe32c1c32 100644
--- a/configs/inet86dz_defconfig
+++ b/configs/inet86dz_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=552
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-inet86dz"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet97fv2_defconfig b/configs/inet97fv2_defconfig
index 7bf1439d83..4490e2fe38 100644
--- a/configs/inet97fv2_defconfig
+++ b/configs/inet97fv2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=408
@@ -13,11 +12,6 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-inet97fv2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet98v_rev2_defconfig b/configs/inet98v_rev2_defconfig
index cc8602be62..d36bb75f77 100644
--- a/configs/inet98v_rev2_defconfig
+++ b/configs/inet98v_rev2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
@@ -15,12 +14,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-inet-98v-rev2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet9f_rev03_defconfig b/configs/inet9f_rev03_defconfig
index 2837f065ef..0c53a1210a 100644
--- a/configs/inet9f_rev03_defconfig
+++ b/configs/inet9f_rev03_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=408
@@ -13,11 +12,6 @@ CONFIG_VIDEO_LCD_POWER="PH8"
CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-inet9f-rev03"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/inet_q972_defconfig b/configs/inet_q972_defconfig
index 280158f81b..83dc7f8998 100644
--- a/configs/inet_q972_defconfig
+++ b/configs/inet_q972_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_CLK=384
@@ -15,13 +14,8 @@ CONFIG_VIDEO_LCD_DCLK_PHASE=0
CONFIG_VIDEO_LCD_BL_EN="PA25"
CONFIG_VIDEO_LCD_BL_PWM="PH13"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-inet-q972"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/jesurun_q5_defconfig b/configs/jesurun_q5_defconfig
index 7be441837b..06357ed7b4 100644
--- a/configs/jesurun_q5_defconfig
+++ b/configs/jesurun_q5_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=312
@@ -8,15 +7,10 @@ CONFIG_MACPWR="PH19"
CONFIG_USB0_VBUS_PIN="PB9"
CONFIG_VIDEO_COMPOSITE=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-jesurun-q5"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_MII=y
CONFIG_SUN4I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/libretech_all_h3_cc_h2_plus_defconfig b/configs/libretech_all_h3_cc_h2_plus_defconfig
index f648b7d516..c9a1708ebd 100644
--- a/configs/libretech_all_h3_cc_h2_plus_defconfig
+++ b/configs/libretech_all_h3_cc_h2_plus_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-libretech-all-h3-cc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/libretech_all_h3_cc_h3_defconfig b/configs/libretech_all_h3_cc_h3_defconfig
index c39a116850..7175123872 100644
--- a/configs/libretech_all_h3_cc_h3_defconfig
+++ b/configs/libretech_all_h3_cc_h3_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-libretech-all-h3-cc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/libretech_all_h3_cc_h5_defconfig b/configs/libretech_all_h3_cc_h5_defconfig
index aac3d0626a..b70b13f425 100644
--- a/configs/libretech_all_h3_cc_h5_defconfig
+++ b/configs/libretech_all_h3_cc_h5_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-libretech-all-h3-cc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/libretech_all_h3_it_h5_defconfig b/configs/libretech_all_h3_it_h5_defconfig
index 76cee85c96..159eb38d70 100644
--- a/configs/libretech_all_h3_it_h5_defconfig
+++ b/configs/libretech_all_h3_it_h5_defconfig
@@ -1,21 +1,15 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-libretech-all-h3-it"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH_XMC=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/libretech_all_h5_cc_h5_defconfig b/configs/libretech_all_h5_cc_h5_defconfig
index 9ccb29d076..ddbd1b51c4 100644
--- a/configs/libretech_all_h5_cc_h5_defconfig
+++ b/configs/libretech_all_h5_cc_h5_defconfig
@@ -1,17 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-libretech-all-h5-cc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH_XMC=y
CONFIG_SUN8I_EMAC=y
@@ -19,4 +14,3 @@ CONFIG_SPI=y
CONFIG_DM_SPI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/mixtile_loftq_defconfig b/configs/mixtile_loftq_defconfig
index 620dac6774..829491fa8e 100644
--- a/configs/mixtile_loftq_defconfig
+++ b/configs/mixtile_loftq_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN6I=y
CONFIG_DRAM_ZQ=251
@@ -9,11 +8,7 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB1_VBUS_PIN="PH24"
CONFIG_USB2_VBUS_PIN=""
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-mixtile-loftq"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ETH_DESIGNWARE=y
CONFIG_RGMII=y
CONFIG_MII=y
@@ -21,4 +16,3 @@ CONFIG_SUN7I_GMAC=y
CONFIG_AXP_ALDO1_VOLT=3300
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/mk802_a10s_defconfig b/configs/mk802_a10s_defconfig
index cf6b11a451..3ffbef09ea 100644
--- a/configs/mk802_a10s_defconfig
+++ b/configs/mk802_a10s_defconfig
@@ -1,20 +1,14 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=432
CONFIG_DRAM_EMR1=0
CONFIG_USB1_VBUS_PIN="PB10"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-mk802"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP152_POWER=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/mk802_defconfig b/configs/mk802_defconfig
index 472758cb04..077c21f422 100644
--- a/configs/mk802_defconfig
+++ b/configs/mk802_defconfig
@@ -1,16 +1,10 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_USB2_VBUS_PIN="PH12"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mk802"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUNXI_NO_PMIC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/mk802ii_defconfig b/configs/mk802ii_defconfig
index ec76622966..17042afdcd 100644
--- a/configs/mk802ii_defconfig
+++ b/configs/mk802ii_defconfig
@@ -1,15 +1,9 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mk802ii"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_a64_defconfig b/configs/nanopi_a64_defconfig
index dedb389d3d..0d46b332b1 100644
--- a/configs/nanopi_a64_defconfig
+++ b/configs/nanopi_a64_defconfig
@@ -1,16 +1,10 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-nanopi-a64"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_m1_defconfig b/configs/nanopi_m1_defconfig
index 00f8678f53..2b55853bca 100644
--- a/configs/nanopi_m1_defconfig
+++ b/configs/nanopi_m1_defconfig
@@ -1,15 +1,9 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=408
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-m1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_m1_plus_defconfig b/configs/nanopi_m1_plus_defconfig
index b3e1460511..398fd9969a 100644
--- a/configs/nanopi_m1_plus_defconfig
+++ b/configs/nanopi_m1_plus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=408
@@ -8,12 +7,7 @@ CONFIG_MACPWR="PD6"
CONFIG_MMC0_CD_PIN="PH13"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-m1-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_neo2_defconfig b/configs/nanopi_neo2_defconfig
index cbac2a9ff4..753a305356 100644
--- a/configs/nanopi_neo2_defconfig
+++ b/configs/nanopi_neo2_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-nanopi-neo2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_neo_air_defconfig b/configs/nanopi_neo_air_defconfig
index 01bf61d4c6..baaccf145e 100644
--- a/configs/nanopi_neo_air_defconfig
+++ b/configs/nanopi_neo_air_defconfig
@@ -1,17 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=408
# CONFIG_VIDEO_DE2 is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-neo-air"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_neo_defconfig b/configs/nanopi_neo_defconfig
index a29922d698..d115d84ba9 100644
--- a/configs/nanopi_neo_defconfig
+++ b/configs/nanopi_neo_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=408
# CONFIG_VIDEO_DE2 is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-neo"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/nanopi_neo_plus2_defconfig b/configs/nanopi_neo_plus2_defconfig
index 65f971eb36..a852388edf 100644
--- a/configs/nanopi_neo_plus2_defconfig
+++ b/configs/nanopi_neo_plus2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=408
@@ -9,11 +8,7 @@ CONFIG_DRAM_ZQ=3881977
CONFIG_MACPWR="PD6"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-nanopi-neo-plus2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/oceanic_5205_5inmfd_defconfig b/configs/oceanic_5205_5inmfd_defconfig
index f71be7f127..5ce0693480 100644
--- a/configs/oceanic_5205_5inmfd_defconfig
+++ b/configs/oceanic_5205_5inmfd_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
@@ -10,12 +9,7 @@ CONFIG_DRAM_ZQ=3881949
CONFIG_MMC0_CD_PIN=""
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-oceanic-5205-5inmfd"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_2_defconfig b/configs/orangepi_2_defconfig
index 6c02949c86..ba161e5665 100644
--- a/configs/orangepi_2_defconfig
+++ b/configs/orangepi_2_defconfig
@@ -1,20 +1,14 @@
CONFIG_ARM=y
# CONFIG_SPL_USE_ARCH_MEMSET is not set
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
CONFIG_USB1_VBUS_PIN="PG13"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_SY8106A_POWER=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_lite2_defconfig b/configs/orangepi_lite2_defconfig
index c0826c0946..35ebf38300 100644
--- a/configs/orangepi_lite2_defconfig
+++ b/configs/orangepi_lite2_defconfig
@@ -1,16 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
CONFIG_MMC0_CD_PIN="PF6"
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-lite2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/orangepi_lite_defconfig b/configs/orangepi_lite_defconfig
index f6319023a2..51afd7f065 100644
--- a/configs/orangepi_lite_defconfig
+++ b/configs/orangepi_lite_defconfig
@@ -1,15 +1,9 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-lite"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_one_defconfig b/configs/orangepi_one_defconfig
index ea74e22451..75bccd03b9 100644
--- a/configs/orangepi_one_defconfig
+++ b/configs/orangepi_one_defconfig
@@ -1,16 +1,10 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-one"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_one_plus_defconfig b/configs/orangepi_one_plus_defconfig
index 5e8117c50d..d97b2172de 100644
--- a/configs/orangepi_one_plus_defconfig
+++ b/configs/orangepi_one_plus_defconfig
@@ -1,16 +1,11 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
CONFIG_MMC0_CD_PIN="PF6"
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-one-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig
index 20209ec41b..8cb3b2b7bd 100644
--- a/configs/orangepi_pc2_defconfig
+++ b/configs/orangepi_pc2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
@@ -9,13 +8,8 @@ CONFIG_DRAM_ZQ=3881977
CONFIG_MACPWR="PD6"
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-pc2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig
index 216b4e8733..a676294a8b 100644
--- a/configs/orangepi_pc_defconfig
+++ b/configs/orangepi_pc_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=624
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-pc"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_SY8106A_POWER=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig
index edd2db1320..97221f7155 100644
--- a/configs/orangepi_pc_plus_defconfig
+++ b/configs/orangepi_pc_plus_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=624
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-pc-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_SY8106A_POWER=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_plus2e_defconfig b/configs/orangepi_plus2e_defconfig
index 8eba1c394b..72862f2276 100644
--- a/configs/orangepi_plus2e_defconfig
+++ b/configs/orangepi_plus2e_defconfig
@@ -1,20 +1,14 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
CONFIG_MACPWR="PD6"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-plus2e"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_SY8106A_POWER=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_plus_defconfig b/configs/orangepi_plus_defconfig
index 48e5140dc8..025b9f69c5 100644
--- a/configs/orangepi_plus_defconfig
+++ b/configs/orangepi_plus_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
@@ -9,14 +8,9 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB1_VBUS_PIN="PG13"
CONFIG_SATAPWR="PG11"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_SY8106A_POWER=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_prime_defconfig b/configs/orangepi_prime_defconfig
index 5f671230dd..fa7672a23e 100644
--- a/configs/orangepi_prime_defconfig
+++ b/configs/orangepi_prime_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-prime"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_r1_defconfig b/configs/orangepi_r1_defconfig
index 0431fecb52..6f770fa018 100644
--- a/configs/orangepi_r1_defconfig
+++ b/configs/orangepi_r1_defconfig
@@ -1,17 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=624
# CONFIG_VIDEO_DE2 is not set
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-orangepi-r1"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_win_defconfig b/configs/orangepi_win_defconfig
index bcf74580b5..047a6b7d84 100644
--- a/configs/orangepi_win_defconfig
+++ b/configs/orangepi_win_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_MACPWR="PD14"
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-orangepi-win"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_PHY_REALTEK=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig
index 51d8ec001e..c989f0dcf7 100644
--- a/configs/orangepi_zero_defconfig
+++ b/configs/orangepi_zero_defconfig
@@ -1,17 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=624
# CONFIG_VIDEO_DE2 is not set
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_CONSOLE_MUX=y
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-orangepi-zero"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_zero_plus2_defconfig b/configs/orangepi_zero_plus2_defconfig
index 3d560241d5..a38c9beb3e 100644
--- a/configs/orangepi_zero_plus2_defconfig
+++ b/configs/orangepi_zero_plus2_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=672
@@ -9,12 +8,7 @@ CONFIG_DRAM_ZQ=3881977
CONFIG_MMC0_CD_PIN="PH13"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus2"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_zero_plus2_h3_defconfig b/configs/orangepi_zero_plus2_h3_defconfig
index d40f4f2006..6b50ff9ca0 100644
--- a/configs/orangepi_zero_plus2_h3_defconfig
+++ b/configs/orangepi_zero_plus2_h3_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_H3=y
CONFIG_DRAM_CLK=672
@@ -8,11 +7,7 @@ CONFIG_DRAM_CLK=672
CONFIG_MMC0_CD_PIN="PH13"
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-zero-plus2"
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/orangepi_zero_plus_defconfig b/configs/orangepi_zero_plus_defconfig
index 22ffbdf2e8..77c7bdb25a 100644
--- a/configs/orangepi_zero_plus_defconfig
+++ b/configs/orangepi_zero_plus_defconfig
@@ -1,18 +1,12 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H5=y
CONFIG_DRAM_CLK=624
CONFIG_DRAM_ZQ=3881977
# CONFIG_DRAM_ODT_EN is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/parrot_r16_defconfig b/configs/parrot_r16_defconfig
index 08163bbe79..2c2edbc2b6 100644
--- a/configs/parrot_r16_defconfig
+++ b/configs/parrot_r16_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=600
@@ -12,15 +11,11 @@ CONFIG_USB0_ID_DET="PD10"
CONFIG_USB1_VBUS_PIN="PD12"
CONFIG_AXP_GPIO=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_SPL_PARTITION_UUIDS is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-parrot"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_CONS_INDEX=5
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_MUSB_GADGET=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
CONFIG_USB_FUNCTION_MASS_STORAGE=y
diff --git a/configs/pine64-lts_defconfig b/configs/pine64-lts_defconfig
index 6e2c247c1a..ef108a1a31 100644
--- a/configs/pine64-lts_defconfig
+++ b/configs/pine64-lts_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y
@@ -10,12 +9,7 @@ CONFIG_MMC0_CD_PIN=""
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-lts"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig
index 9c347881cc..a03757704a 100644
--- a/configs/pine64_plus_defconfig
+++ b/configs/pine64_plus_defconfig
@@ -1,20 +1,14 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_PINE64_DT_SELECTION=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-plus"
CONFIG_OF_LIST="sun50i-a64-pine64 sun50i-a64-pine64-plus"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_PHY_REALTEK=y
CONFIG_RTL8211E_PINE64_GIGABIT_FIX=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/pine_h64_defconfig b/configs/pine_h64_defconfig
index b49dbea4d4..206a0937a4 100644
--- a/configs/pine_h64_defconfig
+++ b/configs/pine_h64_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I_H6=y
CONFIG_SUNXI_DRAM_H6_LPDDR3=y
@@ -9,10 +8,6 @@ CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB3_VBUS_PIN="PL5"
# CONFIG_PSCI_RESET is not set
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-pine-h64"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig
index 929434e25a..43df3f3c82 100644
--- a/configs/pinebook_defconfig
+++ b/configs/pinebook_defconfig
@@ -7,18 +7,13 @@ CONFIG_DRAM_CLK=552
CONFIG_DRAM_ZQ=3881949
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_R_I2C_ENABLE=y
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_PWM=y
CONFIG_PWM_SUNXI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
# CONFIG_USB_GADGET is not set
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
diff --git a/configs/polaroid_mid2407pxe03_defconfig b/configs/polaroid_mid2407pxe03_defconfig
index c3c7855c4d..712451a14b 100644
--- a/configs/polaroid_mid2407pxe03_defconfig
+++ b/configs/polaroid_mid2407pxe03_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=432
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-polaroid-mid2407pxe03"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/polaroid_mid2809pxe04_defconfig b/configs/polaroid_mid2809pxe04_defconfig
index a6f519ea6e..2aaf784988 100644
--- a/configs/polaroid_mid2809pxe04_defconfig
+++ b/configs/polaroid_mid2809pxe04_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=432
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-polaroid-mid2809pxe04"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/pov_protab2_ips9_defconfig b/configs/pov_protab2_ips9_defconfig
index b002edb8c6..f21ae9d42b 100644
--- a/configs/pov_protab2_ips9_defconfig
+++ b/configs/pov_protab2_ips9_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=432
@@ -14,11 +13,6 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-pov-protab2-ips9"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/q8_a13_tablet_defconfig b/configs/q8_a13_tablet_defconfig
index eb65020117..f07d136a7f 100644
--- a/configs/q8_a13_tablet_defconfig
+++ b/configs/q8_a13_tablet_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=384
@@ -15,12 +14,7 @@ CONFIG_VIDEO_LCD_POWER="AXP0-0"
CONFIG_VIDEO_LCD_BL_EN="AXP0-1"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-q8-tablet"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=2
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/q8_a23_tablet_800x480_defconfig b/configs/q8_a23_tablet_800x480_defconfig
index f2c2248a8a..05a7604436 100644
--- a/configs/q8_a23_tablet_800x480_defconfig
+++ b/configs/q8_a23_tablet_800x480_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=432
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-q8-tablet"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/q8_a33_tablet_1024x600_defconfig b/configs/q8_a33_tablet_1024x600_defconfig
index 803c46e004..1c88e5fe0e 100644
--- a/configs/q8_a33_tablet_1024x600_defconfig
+++ b/configs/q8_a33_tablet_1024x600_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=456
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-q8-tablet"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/q8_a33_tablet_800x480_defconfig b/configs/q8_a33_tablet_800x480_defconfig
index 20450ebc9e..581117a92a 100644
--- a/configs/q8_a33_tablet_800x480_defconfig
+++ b/configs/q8_a33_tablet_800x480_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=456
@@ -16,12 +15,7 @@ CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-q8-tablet"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP_DLDO1_VOLT=3300
CONFIG_CONS_INDEX=5
CONFIG_USB_MUSB_HOST=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/r7-tv-dongle_defconfig b/configs/r7-tv-dongle_defconfig
index 1317d8749e..057f29b6d2 100644
--- a/configs/r7-tv-dongle_defconfig
+++ b/configs/r7-tv-dongle_defconfig
@@ -1,19 +1,13 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN5I=y
CONFIG_DRAM_CLK=384
CONFIG_USB1_VBUS_PIN="PG13"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-r7-tv-dongle"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_AXP152_POWER=y
CONFIG_CONS_INDEX=2
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/sopine_baseboard_defconfig b/configs/sopine_baseboard_defconfig
index 87ed55264d..98278bbc73 100644
--- a/configs/sopine_baseboard_defconfig
+++ b/configs/sopine_baseboard_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN50I=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
@@ -11,13 +10,8 @@ CONFIG_MMC0_CD_PIN=""
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_SPL_SPI_SUNXI=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-sopine-baseboard"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SUN8I_EMAC=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/sun8i_a23_evb_defconfig b/configs/sun8i_a23_evb_defconfig
index eba05cfff2..1045caf47a 100644
--- a/configs/sun8i_a23_evb_defconfig
+++ b/configs/sun8i_a23_evb_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A23=y
CONFIG_DRAM_CLK=552
@@ -9,12 +8,7 @@ CONFIG_USB0_VBUS_PIN="axp_drivebus"
CONFIG_USB0_VBUS_DET="axp_vbus_detect"
CONFIG_USB1_VBUS_PIN="PH7"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-evb"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_CONS_INDEX=5
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/sunxi_Gemei_G9_defconfig b/configs/sunxi_Gemei_G9_defconfig
index 5d10532703..427a29caec 100644
--- a/configs/sunxi_Gemei_G9_defconfig
+++ b/configs/sunxi_Gemei_G9_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN4I=y
CONFIG_DRAM_CLK=432
@@ -11,12 +10,7 @@ CONFIG_VIDEO_LCD_BL_EN="PH7"
CONFIG_VIDEO_LCD_BL_PWM="PB2"
CONFIG_VIDEO_LCD_PANEL_LVDS=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
CONFIG_SPL_I2C_SUPPORT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-gemei-g9"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
diff --git a/configs/tbs_a711_defconfig b/configs/tbs_a711_defconfig
index a961e6baaf..509a87d41e 100644
--- a/configs/tbs_a711_defconfig
+++ b/configs/tbs_a711_defconfig
@@ -1,6 +1,5 @@
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
-CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL=y
CONFIG_MACH_SUN8I_A83T=y
CONFIG_DRAM_TYPE=7
@@ -13,11 +12,7 @@ CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
CONFIG_USB0_ID_DET="PH11"
CONFIG_AXP_GPIO=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-tbs-a711"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
CONFIG_AXP_DCDC5_VOLT=1200
CONFIG_USB_EHCI_HCD=y
diff --git a/configs/teres_i_defconfig b/configs/teres_i_defconfig
index 1019dab54a..1eba20e5f5 100644
--- a/configs/teres_i_defconfig
+++ b/configs/teres_i_defconfig
@@ -7,17 +7,12 @@ CONFIG_DRAM_ZQ=3881949
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
CONFIG_USB1_VBUS_PIN="PL7"
CONFIG_I2C0_ENABLE=y
-CONFIG_USE_PREBOOT=y
-# CONFIG_SPL_DOS_PARTITION is not set
-# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-teres-i"
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_PWM=y
CONFIG_PWM_SUNXI=y
CONFIG_USB_EHCI_HCD=y
-CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
# CONFIG_USB_GADGET is not set
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y
--
2.17.1
^ permalink raw reply related
* Re: [PATCH] ARM: dts: am437x-idk-evm: Fix incorrect OPP node names
From: Tony Lindgren @ 2020-02-20 17:51 UTC (permalink / raw)
To: Suman Anna; +Cc: Dave Gerlach, Roger Quadros, linux-omap, devicetree
In-Reply-To: <20200210210423.22424-1-s-anna@ti.com>
* Suman Anna <s-anna@ti.com> [200210 13:05]:
> The commit 337c6c9a69af ("ARM: dts: am437x-idk-evm: Disable
> OPP50 for MPU") adjusts couple of OPP nodes defined in the
> common am4372.dtsi file, but used outdated node names. This
> results in these getting treated as new OPP nodes with missing
> properties.
>
> Fix this properly by using the correct node names as updated in
> commit b9cb2ba71848 ("ARM: dts: Use - instead of @ for DT OPP
> entries for TI SoCs").
Applying into fixes thanks.
Tony
^ permalink raw reply
* Re: [PATCH] KVM: PPC: Book3S HV: Treat TM-related invalid form instructions on P9 like the valid one
From: Leonardo Bras @ 2020-02-20 17:51 UTC (permalink / raw)
To: Gustavo Romero, kvm-ppc, paulus; +Cc: mikey, linuxppc-dev
In-Reply-To: <20200218211324.23045-1-gromero@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 2668 bytes --]
Hello Gustavo, comments inline:
On Tue, 2020-02-18 at 16:13 -0500, Gustavo Romero wrote:
<SNIP>
> diff --git a/arch/powerpc/kvm/book3s_hv_tm.c b/arch/powerpc/kvm/book3s_hv_tm.c
> index 0db937497169..cc90b8b82329 100644
> --- a/arch/powerpc/kvm/book3s_hv_tm.c
> +++ b/arch/powerpc/kvm/book3s_hv_tm.c
> @@ -3,6 +3,8 @@
> * Copyright 2017 Paul Mackerras, IBM Corp. <paulus@au1.ibm.com>
> */
>
> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
> +
Could not see where is this used.
> #include <linux/kvm_host.h>
>
> #include <asm/kvm_ppc.h>
> @@ -44,7 +46,18 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
> u64 newmsr, bescr;
> int ra, rs;
>
> - switch (instr & 0xfc0007ff) {
> + /*
> + * rfid, rfebb, and mtmsrd encode bit 31 = 0 since it's a reserved bit
> + * in these instructions, so masking bit 31 out doesn't change these
> + * instructions. For treclaim., tsr., and trechkpt. instructions if bit
> + * 31 = 0 then they are per ISA invalid forms, however P9 UM, in section
> + * 4.6.10 Book II Invalid Forms, informs specifically that ignoring bit
> + * 31 is an acceptable way to handle these invalid forms that have
> + * bit 31 = 0. Moreover, for emulation purposes both forms (w/ and wo/
> + * bit 31 set) can generate a softpatch interrupt. Hence both forms
> + * are handled below for these instructions so they behave the same way.
> + */
> + switch (instr & PO_XOP_OPCODE_MASK) {
>
<SNIP>
> - case PPC_INST_TRECHKPT:
> + /* ignore bit 31, see comment above */
> + case (PPC_INST_TRECHKPT & PO_XOP_OPCODE_MASK):
> /* XXX do we need to check for PR=0 here? */
> /* check for TM disabled in the HFSCR or MSR */
> if (!(vcpu->arch.hfscr & HFSCR_TM)) {
> @@ -208,6 +224,8 @@ int kvmhv_p9_tm_emulation(struct kvm_vcpu *vcpu)
> }
>
Seems good, using the same flag to mask out bit 31 of these macros.
They are used only in a few places, and I think removing the macro bit
would be ok, but I think your way is better to keep it documented.
I just noticed that there is a similar function that uses PPC_INST_TSR:
kvmhv_p9_tm_emulation_early @ arch/powerpc/kvm/book3s_hv_tm_builtin.c.
Wouldn't it need to be changed as well?
> /* What should we do here? We didn't recognize the instruction */
> - WARN_ON_ONCE(1);
> + kvmppc_core_queue_program(vcpu, SRR1_PROGILL);
> + pr_warn_ratelimited("Unrecognized TM-related instruction %#x for emulation", instr);
> +
> return RESUME_GUEST;
> }
I suppose this is the right thing to do, but I think it would be better
to give this change it's own patch.
What do you think?
Best regards,
Leonardo Bras
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
* [meta-oe][PATCH 1/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: use git fetcher instead of svn fetcher
From: Martin Jansa @ 2020-02-20 17:52 UTC (permalink / raw)
To: openembedded-devel
* svn checkouts from http://svn.openmoko.org/ are now redirected to github:
svn --non-interactive --trust-server-cert co --no-auth-cache --ignore-externals -r 4949 http://svn.openmoko.org/trunk/src/target/gpio@4949 gpio
Redirecting to URL 'https://github.com/openmoko/openmoko-svn':
A gpio/branches
A gpio/branches/oe
A gpio/branches/oe/pre-20070305
A gpio/branches/oe/pre-20070305/README
A gpio/branches/oe/pre-20070305/classes
A gpio/branches/oe/pre-20070305/classes/autotools.bbclass
A gpio/branches/oe/pre-20070305/classes/base.bbclass
A gpio/branches/oe/pre-20070305/classes/openmoko-base.bbclass
A gpio/branches/oe/pre-20070305/classes/openmoko-panel-plugin.bbclass
* unfortunately this is causing the checkout to start from trunk, not the
subdirectory specified in the URL (e.g. /trunk/src/target/gpio) and then
S variable points to incorrect directory as discussed here:
http://lists.openembedded.org/pipermail/openembedded-devel/2020-February/205028.html
* use git fetcher directly to remove the dependency on subversion-native
* for simplicity use the same SRCREV and PV for all of these, there wasn't any
commit in last 8 years (not anyone can expect new commits), I don't
expect anyone nowadays actually using these recipes which I've imported
from meta-smartphone in 2011 - that's why I will send their removal in
follow-up commit.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
.../{s3c24xx-gpio_svn.bb => s3c24xx-gpio_git.bb} | 7 +++----
.../{s3c64xx-gpio_svn.bb => s3c64xx-gpio_git.bb} | 6 +++---
...ux-native_svn.bb => sjf2410-linux-native_git.bb} | 11 +++++------
.../usbpath/{usbpath_svn.bb => usbpath_git.bb} | 10 +++++-----
.../{wmiconfig_svn.bb => wmiconfig_git.bb} | 13 ++++++-------
5 files changed, 22 insertions(+), 25 deletions(-)
rename meta-oe/recipes-support/samsung-soc-utils/{s3c24xx-gpio_svn.bb => s3c24xx-gpio_git.bb} (73%)
rename meta-oe/recipes-support/samsung-soc-utils/{s3c64xx-gpio_svn.bb => s3c64xx-gpio_git.bb} (74%)
rename meta-oe/recipes-support/samsung-soc-utils/{sjf2410-linux-native_svn.bb => sjf2410-linux-native_git.bb} (78%)
rename meta-oe/recipes-support/usbpath/{usbpath_svn.bb => usbpath_git.bb} (68%)
rename meta-oe/recipes-support/wmiconfig/{wmiconfig_svn.bb => wmiconfig_git.bb} (58%)
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
similarity index 73%
rename from meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
rename to meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
index 255754d5d1..98573a062c 100644
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
+++ b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
@@ -3,11 +3,10 @@ SECTION = "console/utils"
AUTHOR = "Werner Almesberger <werner@openmoko.org>"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-PR = "r2"
+PV = "1.0+git${SRCPV}"
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
+SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio"
S = "${WORKDIR}/gpio"
CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
similarity index 74%
rename from meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
rename to meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
index 976a4f15ec..99781718c8 100644
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
+++ b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
@@ -3,10 +3,10 @@ SECTION = "console/utils"
AUTHOR = "Werner Almesberger <werner@openmoko.org>"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
+PV = "1.0+git${SRCPV}"
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
+SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
+SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio"
S = "${WORKDIR}/gpio"
CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
similarity index 78%
rename from meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
rename to meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
index 3a5172eecc..283740396b 100644
--- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
+++ b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
@@ -3,13 +3,12 @@ SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
-SRCREV = "4268"
-PV = "0.1+svnr${SRCPV}"
-PR = "r1"
+PV = "1.0+git${SRCPV}"
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http \
- file://0001-ppt.c-Do-not-include-sys-io.h.patch \
- "
+SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
+SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/sjf2410-linux \
+ file://0001-ppt.c-Do-not-include-sys-io.h.patch \
+"
S = "${WORKDIR}/sjf2410-linux"
inherit native deploy
diff --git a/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-oe/recipes-support/usbpath/usbpath_git.bb
similarity index 68%
rename from meta-oe/recipes-support/usbpath/usbpath_svn.bb
rename to meta-oe/recipes-support/usbpath/usbpath_git.bb
index 6c9cd049fe..a3c75901fb 100644
--- a/meta-oe/recipes-support/usbpath/usbpath_svn.bb
+++ b/meta-oe/recipes-support/usbpath/usbpath_git.bb
@@ -8,12 +8,12 @@ DEPENDS_class-native = "virtual/libusb0-native"
BBCLASSEXTEND = "native"
-SRCREV = "3172"
-PV = "0.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
- file://configure.patch"
+PV = "1.0+git${SRCPV}"
+SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
+SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/usbpath \
+ file://configure.patch \
+"
S = "${WORKDIR}/usbpath"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
similarity index 58%
rename from meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
rename to meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
index c66572b1c1..23273caf8e 100644
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
+++ b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
@@ -2,14 +2,13 @@ SUMMARY = "Atheros 6K Wifi configuration utility"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
SECTION = "console/network"
-SRCREV = "5394"
-PV = "0.0.0+svnr${SRCPV}"
-PR = "r2"
+PV = "1.0+git${SRCPV}"
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \
- file://0001-makefile-Pass-CFLAGS-to-compile.patch \
- file://0002-fix-err-API-to-have-format-string.patch \
- "
+SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
+SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/AR6kSDK.build_sw.18 \
+ file://0001-makefile-Pass-CFLAGS-to-compile.patch \
+ file://0002-fix-err-API-to-have-format-string.patch \
+"
S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
CLEANBROKEN = "1"
--
2.20.1
^ permalink raw reply related
* [meta-oe][PATCH 2/2] s3c24xx-gpio, s3c64xx-gpio, sjf2410-linux-native, usbpath, wmiconfig: remove old recipes
From: Martin Jansa @ 2020-02-20 17:52 UTC (permalink / raw)
To: openembedded-devel
In-Reply-To: <20200220175235.367-1-Martin.Jansa@gmail.com>
* I don't expect anyone nowadays actually using these recipes which I've
imported from meta-smartphone in 2011.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
.../packagegroups/packagegroup-meta-oe.bb | 8 +-
.../0001-ppt.c-Do-not-include-sys-io.h.patch | 28 -
.../samsung-soc-utils/s3c24xx-gpio_git.bb | 21 -
.../samsung-soc-utils/s3c64xx-gpio_git.bb | 21 -
.../sjf2410-linux-native_git.bb | 39 --
.../usbpath/usbpath/configure.patch | 11 -
.../recipes-support/usbpath/usbpath_git.bb | 21 -
...0001-makefile-Pass-CFLAGS-to-compile.patch | 26 -
...02-fix-err-API-to-have-format-string.patch | 656 ------------------
.../wmiconfig/wmiconfig_git.bb | 24 -
10 files changed, 4 insertions(+), 851 deletions(-)
delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
delete mode 100644 meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
delete mode 100644 meta-oe/recipes-support/usbpath/usbpath/configure.patch
delete mode 100644 meta-oe/recipes-support/usbpath/usbpath_git.bb
delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
delete mode 100644 meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index bad4aa769e..a8040fb799 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -251,13 +251,13 @@ RDEPENDS_packagegroup-meta-oe-support ="\
multipath-tools nano neon nmon numactl onig openct openldap \
opensc wbxml2 p910nd pcsc-lite picocom libotr pidgin \
pngcheck poco poppler poppler-data portaudio-v19 pps-tools \
- pv pxaregs raptor2 rdfind read-edid rsnapshot s3c24xx-gpio s3c64xx-gpio \
- sjf2410-linux-native satyr sdparm pty-forward-native serial-forward \
+ pv pxaregs raptor2 rdfind read-edid rsnapshot \
+ satyr sdparm pty-forward-native serial-forward \
sg3-utils sharutils smem spitools srecord ssiapi stm32flash \
syslog-ng system-config-keyboard tbb thin-provisioning-tools tokyocabinet \
tree uhubctl unixodbc uriparser usb-modeswitch \
- usb-modeswitch-data usbpath uthash utouch-evemu utouch-frame \
- vim vim-tiny websocketpp wmiconfig xdelta3 xdg-user-dirs xmlstarlet \
+ usb-modeswitch-data uthash utouch-evemu utouch-frame \
+ vim vim-tiny websocketpp xdelta3 xdg-user-dirs xmlstarlet \
zbar zile \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis toscoterm uim synergy utouch-mtview links-x11 fltk pidgin-otr", "", d)} \
libcanberra \
diff --git a/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch b/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
deleted file mode 100644
index 4e6c250415..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/files/0001-ppt.c-Do-not-include-sys-io.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From fd244ae648789591f0fb79e74d2b8f6c5b15d6e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 00:47:14 +0000
-Subject: [PATCH] ppt.c: Do not include sys/io.h
-
-newer versions of glibc has removed it
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ppt.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/ppt.c b/ppt.c
-index 0bae2d0..0ef279f 100644
---- a/ppt.c
-+++ b/ppt.c
-@@ -5,7 +5,6 @@
- #else
- #include <unistd.h>
- #include <stdlib.h>
--#include <sys/io.h>
- #include <linux/parport.h>
- #include <linux/ppdev.h>
- #include <sys/ioctl.h>
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
deleted file mode 100644
index 98573a062c..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
-SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
deleted file mode 100644
index 99781718c8..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
-SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/gpio"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
deleted file mode 100644
index 283740396b..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_git.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
-SECTION = "devel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
-SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/sjf2410-linux \
- file://0001-ppt.c-Do-not-include-sys-io.h.patch \
-"
-S = "${WORKDIR}/sjf2410-linux"
-
-inherit native deploy
-
-CFLAGS += "-DLINUX_PPDEV"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 sjf2410 ${D}/${bindir}
-}
-
-do_deploy() {
- install -m 0755 sjf2410 ${DEPLOYDIR}/sjf2410-${PV}
-}
-
-addtask deploy before do_build after do_install
-
-do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
-# cleandirs should possibly be in deploy.bbclass but we need it
-do_deploy[cleandirs] = "${DEPLOYDIR}"
-# clear stamp-extra-info since MACHINE_ARCH is normally put there by
-# deploy.bbclass
-do_deploy[stamp-extra-info] = ""
-
diff --git a/meta-oe/recipes-support/usbpath/usbpath/configure.patch b/meta-oe/recipes-support/usbpath/usbpath/configure.patch
deleted file mode 100644
index 271e6a53ad..0000000000
--- a/meta-oe/recipes-support/usbpath/usbpath/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: usbpath/configure.ac
-===================================================================
---- usbpath.orig/configure.ac 2014-07-17 20:40:26.000000000 +0000
-+++ usbpath/configure.ac 2014-07-18 07:01:40.933474420 +0000
-@@ -1,5 +1,5 @@
- AC_INIT([usbpath],[0.1])
--AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_RANLIB
diff --git a/meta-oe/recipes-support/usbpath/usbpath_git.bb b/meta-oe/recipes-support/usbpath/usbpath_git.bb
deleted file mode 100644
index a3c75901fb..0000000000
--- a/meta-oe/recipes-support/usbpath/usbpath_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Convert the physical locations of a USB device to/from its number"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
-DEPENDS = "virtual/libusb0"
-DEPENDS_class-native = "virtual/libusb0-native"
-
-BBCLASSEXTEND = "native"
-
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
-SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/host/usbpath \
- file://configure.patch \
-"
-S = "${WORKDIR}/usbpath"
-
-inherit autotools pkgconfig
-
-RDEPENDS_${PN} += "perl"
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
deleted file mode 100644
index 90eff5bb0f..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:32:42 -0700
-Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile
-
-Set CC if not already set
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile
-index c6738c5..3253a7e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,4 +1,4 @@
--CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
-+CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc
-
- all:
-- $(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
-+ $(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
---
-2.13.2
-
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
deleted file mode 100644
index f67f784c1f..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:33:26 -0700
-Subject: [PATCH 2/2] fix err() API to have format string
-
-Fixes errors with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++--------------------
- 1 file changed, 74 insertions(+), 74 deletions(-)
-
-diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c
-index 21c9dcd..a6ec481 100644
---- a/wmiconfig.c
-+++ b/wmiconfig.c
-@@ -483,7 +483,7 @@ main (int argc, char **argv)
- strcpy(ifname, ethIf);
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
-- err(1, "socket");
-+ err(1, "%s", "socket");
- }
-
- while (1) {
-@@ -1506,28 +1506,28 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)filterCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWER_MODE:
- ifr.ifr_data = (void *)pwrCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PM_PARAMS:
- ifr.ifr_data = (void *)pmParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_IBSS_PM_CAPS:
- ifr.ifr_data = (void *)adhocPmCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ERROR_DETECTION:
-@@ -1535,7 +1535,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_HB_CHALLENGE_RESP:
-@@ -1543,7 +1543,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- #ifdef USER_KEYS
-@@ -1554,7 +1554,7 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- break;
-@@ -1575,7 +1575,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)sParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_VERSION:
-@@ -1586,7 +1586,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)revinfo;
- if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n",
- revinfo->host_ver,
-@@ -1606,14 +1606,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)listenCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BMISS_TIME:
- ifr.ifr_data = (void *)bmissCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RSSI_THRESHOLDS:
-@@ -1621,14 +1621,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SNR_THRESHOLDS:
- ifr.ifr_data = (void *)snrThresholdParam;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CLR_RSSISNR:
-@@ -1636,7 +1636,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LQ_THRESHOLDS:
-@@ -1644,7 +1644,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_CHANNEL:
-@@ -1693,18 +1693,18 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SSID:
- if (index > MAX_PROBED_SSID_INDEX) {
- printf("num option for ssid command too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) {
- printf("ssid name too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- ssidCmd->entryIndex = index;
-@@ -1722,7 +1722,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ssidCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BADAP:
-@@ -1735,7 +1735,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)badApCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CREATE_QOS:
-@@ -1794,7 +1794,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)crePStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_TARGET_STATS:
-@@ -1807,7 +1807,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)&tgtStatsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printTargetStats(&(tgtStatsCmd.targetStats));
- break;
-@@ -1815,7 +1815,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)pBitMask;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DELETE_QOS:
-@@ -1824,7 +1824,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)delPStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_QOS_QUEUE:
-@@ -1840,7 +1840,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)getQosQueueCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- printf("Active TSIDs \n");
-@@ -1855,7 +1855,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ieInfo;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AC_PARAMS:
-@@ -1871,14 +1871,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)acParamsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_DISC_TIMEOUT:
- ifr.ifr_data = (void *)discCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ADHOC_BSSID:
-@@ -1887,7 +1887,7 @@ main (int argc, char **argv)
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
- printf("fail to set adhoc bssid \n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_OPT_MODE:
-@@ -1895,7 +1895,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_OPT_SEND_FRAME:
-@@ -1903,7 +1903,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BEACON_INT:
-@@ -1911,7 +1911,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_VOICE_PKT_SIZE:
-@@ -1919,7 +1919,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MAX_SP:
-@@ -1927,7 +1927,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_TBL:
-@@ -1935,7 +1935,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ROAM_CTRL:
-@@ -1943,7 +1943,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWERSAVE_TIMERS:
-@@ -1951,7 +1951,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_POWER_MODE:
-@@ -1959,7 +1959,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Power mode is %s\n",
- (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec");
-@@ -1969,7 +1969,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_DATA:
-@@ -1977,7 +1977,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_STATUS:
-@@ -1985,7 +1985,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_PARAMS:
-@@ -1993,7 +1993,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RETRYLIMITS:
-@@ -2001,14 +2001,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_START_SCAN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_FIX_RATES:
-@@ -2031,14 +2031,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_FIX_RATES:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- } else {
- int i;
- printf("Fix rate set index:");
-@@ -2057,7 +2057,7 @@ main (int argc, char **argv)
- index--;
- setAuthMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_REASSOC_MODE:
-@@ -2067,42 +2067,42 @@ main (int argc, char **argv)
- index--;
- setReassocMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LPREAMBLE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RTS:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WMM:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_TXOP:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_READ:
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("diagdata: 0x%x\n", *diagdata);
- break;
-@@ -2110,7 +2110,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_RD:
-@@ -2118,7 +2118,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- else
- {
-@@ -2139,14 +2139,14 @@ main (int argc, char **argv)
- index--;
- setKeepAlive->keepaliveInterval = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_KEEPALIVE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Keepalive interval is %d secs and AP is %s\n",
- getKeepAlive->keepaliveInterval, (getKeepAlive->configured ?
-@@ -2156,63 +2156,63 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MGMT_FRM_RX_FILTER:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_CFG_MODULE:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_GET_DEBUG_LOGS:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_HOST_SLEEP_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WOW_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_ADD_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DEL_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_WOW_LIST:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_DUMP_CHIP_MEM:
-@@ -2225,7 +2225,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("0x%04x:0x%04x\n", *diagaddr, *diagdata);
- }
-@@ -2237,21 +2237,21 @@ main (int argc, char **argv)
- index = optind - 1;
- *connectCtrlFlags = strtoul(argv[index], NULL, 0);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DUMP_HTC_CREDITS:
- ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AKMP_INFO:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PMKID_LIST:
-@@ -2259,7 +2259,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- } else {
- printf("No PMKIDs entered\n");
-@@ -2269,7 +2269,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BSS_PMKID_INFO:
-@@ -2277,7 +2277,7 @@ main (int argc, char **argv)
- iwr.u.data.length = sizeof(*pi_cmd);
- if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) {
- printf("ADDPMKID IOCTL Error\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- default:
---
-2.13.2
-
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
deleted file mode 100644
index 23273caf8e..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Atheros 6K Wifi configuration utility"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
-SECTION = "console/network"
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "0bde889e6fc09a330d0e0b9eb9808b20b2bf13d1"
-SRC_URI = "git://github.com/openmoko/openmoko-svn.git;protocol=https;subpath=src/target/AR6kSDK.build_sw.18 \
- file://0001-makefile-Pass-CFLAGS-to-compile.patch \
- file://0002-fix-err-API-to-have-format-string.patch \
-"
-S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
-
-CLEANBROKEN = "1"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 wmiconfig ${D}${bindir}
-}
-
--
2.20.1
^ permalink raw reply related
* Re: [PATCH] ARM: dts: dra7xx-clocks: Fixup IPU1 mux clock parent source
From: Tony Lindgren @ 2020-02-20 17:52 UTC (permalink / raw)
To: Suman Anna; +Cc: Tero Kristo, linux-omap, devicetree
In-Reply-To: <20200211155103.23973-1-s-anna@ti.com>
* Suman Anna <s-anna@ti.com> [200211 07:52]:
> The IPU1 functional clock is the output of a mux clock (represented
> by ipu1_gfclk_mux previously) and the clock source for this has been
> updated to be sourced from dpll_core_h22x2_ck in commit 39879c7d963e
> ("ARM: dts: dra7xx-clocks: Source IPU1 functional clock from CORE DPLL").
> ipu1_gfclk_mux is an obsolete clock now with the clkctrl conversion,
> and this clock source parenting is lost during the new clkctrl layout
> conversion.
>
> Remove this stale clock and fix up the clock source for this mux
> clock using the latest equivalent clkctrl clock. This restores the
> previous logic and ensures that the IPU1 continues to run at the
> same frequency of IPU2 and independent of the ABE DPLL.
>
> Fixes: b5f8ffbb6fad ("ARM: dts: dra7: convert to use new clkctrl layout")
> Signed-off-by: Suman Anna <s-anna@ti.com>
> ---
> Hi Tony,
>
> Patch on top of 5.6-rc1. Appreciate it if you can include it for the 5.6-rc
> cycle.
OK applying into fixes thanks.
Tony
^ permalink raw reply
* [PATCH bpf-next v4 3/8] bpf: lsm: provide attachment points for BPF LSM programs
From: KP Singh @ 2020-02-20 17:52 UTC (permalink / raw)
To: linux-kernel, bpf, linux-security-module
Cc: Alexei Starovoitov, Daniel Borkmann, James Morris, Kees Cook,
Thomas Garnier, Michael Halcrow, Paul Turner, Brendan Gregg,
Jann Horn, Matthew Garrett, Christian Brauner, Florent Revest,
Brendan Jackman, Martin KaFai Lau, Song Liu, Yonghong Song,
Serge E. Hallyn, David S. Miller, Greg Kroah-Hartman,
Nicolas Ferre, Stanislav Fomichev, Quentin Monnet, Andrey Ignatov,
Joe Stringer
In-Reply-To: <20200220175250.10795-1-kpsingh@chromium.org>
From: KP Singh <kpsingh@google.com>
The BPF LSM programs are implemented as fexit trampolines to avoid the
overhead of retpolines. These programs cannot be attached to security_*
wrappers as there are quite a few security_* functions that do more than
just calling the LSM callbacks.
This was discussed on the lists in:
https://lore.kernel.org/bpf/20200123152440.28956-1-kpsingh@chromium.org/T/#m068becce588a0cdf01913f368a97aea4c62d8266
Adding a NOP callback after all the static LSM callbacks are called has
the following benefits:
- The BPF programs run at the right stage of the security_* wrappers.
- They run after all the static LSM hooks allowed the operation,
therefore cannot allow an action that was already denied.
There are some hooks which do not call call_int_hooks or
call_void_hooks. It's not possible to call the bpf_lsm_* functions
without checking if there is BPF LSM program attached to these hooks.
This is added further in a subsequent patch. For now, these hooks are
marked as NO_BPF (i.e. attachment of BPF programs is not possible).
Signed-off-by: KP Singh <kpsingh@google.com>
---
include/linux/bpf_lsm.h | 34 ++++++++++++++++++++++++++++++++++
kernel/bpf/bpf_lsm.c | 16 ++++++++++++++++
security/security.c | 3 +++
3 files changed, 53 insertions(+)
create mode 100644 include/linux/bpf_lsm.h
diff --git a/include/linux/bpf_lsm.h b/include/linux/bpf_lsm.h
new file mode 100644
index 000000000000..f867f72f6aa9
--- /dev/null
+++ b/include/linux/bpf_lsm.h
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+/*
+ * Copyright 2019 Google LLC.
+ */
+
+#ifndef _LINUX_BPF_LSM_H
+#define _LINUX_BPF_LSM_H
+
+#include <linux/bpf.h>
+
+#ifdef CONFIG_BPF_LSM
+
+#define LSM_HOOK(RET, NAME, ...) RET bpf_lsm_##NAME(__VA_ARGS__);
+#include <linux/lsm_hook_names.h>
+#undef LSM_HOOK
+
+#define RUN_BPF_LSM_VOID_PROGS(FUNC, ...) bpf_lsm_##FUNC(__VA_ARGS__)
+#define RUN_BPF_LSM_INT_PROGS(RC, FUNC, ...) ({ \
+ do { \
+ if (RC == 0) \
+ RC = bpf_lsm_##FUNC(__VA_ARGS__); \
+ } while (0); \
+ RC; \
+})
+
+#else /* !CONFIG_BPF_LSM */
+
+#define RUN_BPF_LSM_INT_PROGS(RC, FUNC, ...) (RC)
+#define RUN_BPF_LSM_VOID_PROGS(FUNC, ...)
+
+#endif /* CONFIG_BPF_LSM */
+
+#endif /* _LINUX_BPF_LSM_H */
diff --git a/kernel/bpf/bpf_lsm.c b/kernel/bpf/bpf_lsm.c
index affb6941622e..abc847c9b9a1 100644
--- a/kernel/bpf/bpf_lsm.c
+++ b/kernel/bpf/bpf_lsm.c
@@ -7,6 +7,22 @@
#include <linux/filter.h>
#include <linux/bpf.h>
#include <linux/btf.h>
+#include <linux/bpf_lsm.h>
+
+/* For every LSM hook that allows attachment of BPF programs, declare a NOP
+ * function where a BPF program can be attached as an fexit trampoline.
+ */
+#define LSM_HOOK(RET, NAME, ...) LSM_HOOK_##RET(NAME, __VA_ARGS__)
+#define LSM_HOOK_int(NAME, ...) noinline int bpf_lsm_##NAME(__VA_ARGS__) \
+{ \
+ return 0; \
+}
+
+#define LSM_HOOK_void(NAME, ...) \
+ noinline void bpf_lsm_##NAME(__VA_ARGS__) {}
+
+#include <linux/lsm_hook_names.h>
+#undef LSM_HOOK
const struct bpf_prog_ops lsm_prog_ops = {
};
diff --git a/security/security.c b/security/security.c
index 565bc9b67276..aa111392a700 100644
--- a/security/security.c
+++ b/security/security.c
@@ -28,6 +28,7 @@
#include <linux/string.h>
#include <linux/msg.h>
#include <net/flow.h>
+#include <linux/bpf_lsm.h>
#define MAX_LSM_EVM_XATTR 2
@@ -684,6 +685,7 @@ static void __init lsm_early_task(struct task_struct *task)
\
hlist_for_each_entry(P, &security_hook_heads.FUNC, list) \
P->hook.FUNC(__VA_ARGS__); \
+ RUN_BPF_LSM_VOID_PROGS(FUNC, __VA_ARGS__); \
} while (0)
#define call_int_hook(FUNC, IRC, ...) ({ \
@@ -696,6 +698,7 @@ static void __init lsm_early_task(struct task_struct *task)
if (RC != 0) \
break; \
} \
+ RC = RUN_BPF_LSM_INT_PROGS(RC, FUNC, __VA_ARGS__); \
} while (0); \
RC; \
})
--
2.20.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.