Page MenuHomeFreeBSD

adrian (Adrian Chadd)
User

Projects

User Details

User Since
May 14 2014, 7:57 AM (560 w, 4 d)

Recent Activity

Today

adrian accepted D48573: comms/wsjtz: Give bin/jt9 an executable stack.
Sun, Feb 9, 3:35 AM
adrian added a comment to D48572: comms/wsjtx: Give bin/jt9 an executable stack.

and yes I did test it locally, on shurd's insistance. Thanks!

Sun, Feb 9, 3:35 AM
adrian accepted D48572: comms/wsjtx: Give bin/jt9 an executable stack.
Sun, Feb 9, 3:26 AM

Yesterday

adrian accepted D48903: mtw: Fix mtw_mcu_radio().

good catch! @jsm what do you think?

Sat, Feb 8, 7:58 PM
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

oops, missed a bit

Sat, Feb 8, 4:26 AM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

gaivn reported iwm being broken and .. well, now i know why.

Sat, Feb 8, 3:39 AM · wireless

Mon, Feb 3

adrian accepted D45179: mt7601U: Importing if_mtw from OpenBSD.
Mon, Feb 3, 5:24 PM
adrian accepted D48817: firmware as a blob for mtw.
Mon, Feb 3, 5:15 PM

Sun, Feb 2

adrian added a comment to D48317: ARM64 GICv3 Cache bits.

Your unwillingness to try and actually understand the problem is your own choice, not mine. Adding a platform-specific quirk to ignore the inability to set something that the specification does not give implementations license to restrict is one thing, but doing it unilaterally for every platform is quite another thing and I wholeheartedly object to just disabling checks that get in the way with our current implementation on your hardware. We could quite easily have a real bug in our driver here, and in doing so we're just ignoring that. I also have absolutely no desire to encounter cache coherency bugs in future because of a change like this which just decides that cache coherency is something that can be ignored and everything will be fine, don't worry about it. I do not know what the implications of picking up a different firmware-chosen value here is and whether FreeBSD can in fact cope with it. Do you?

What you could have instead done is try something like the following patch, as I hinted at on IRC two weeks ago:

diff --git a/sys/arm64/arm64/gic_v3_reg.h b/sys/arm64/arm64/gic_v3_reg.h
index 792b532196a9..bba97fca914e 100644
--- a/sys/arm64/arm64/gic_v3_reg.h
+++ b/sys/arm64/arm64/gic_v3_reg.h
@@ -286,7 +286,8 @@
 #define	GITS_PIDR2_ARCH_GICv4	GICR_PIDR2_ARCH_GICv4
 
 #define	GITS_CTLR		(0x0000)
-#define		GITS_CTLR_EN	(1 << 0)
+#define		GITS_CTLR_EN		(1 << 0)
+#define		GITS_CTLR_QUIESCENT	(1U << 31)
 
 #define	GITS_IIDR		(0x0004)
 #define	 GITS_IIDR_PRODUCT_SHIFT	24
diff --git a/sys/arm64/arm64/gicv3_its.c b/sys/arm64/arm64/gicv3_its.c
index 4b554f2dc30a..f11e97a68a20 100644
--- a/sys/arm64/arm64/gicv3_its.c
+++ b/sys/arm64/arm64/gicv3_its.c
@@ -66,6 +66,7 @@
 #include <arm/arm/gic_common.h>
 #include <arm64/arm64/gic_v3_reg.h>
 #include <arm64/arm64/gic_v3_var.h>
+#include "gic_v3_reg.h"
 
 #ifdef FDT
 #include <dev/ofw/openfirm.h>
@@ -1061,6 +1062,8 @@ gicv3_its_attach(device_t dev)
 		ctlr &= ~GITS_CTLR_EN;
 		gic_its_write_4(sc, GITS_CTLR, ctlr);
 	}
+	while (((ctlr = gic_its_read_4(sc, GITS_CTLR)) & GITS_CTLR_QUIESCENT) == 0)
+		;
 
 	/* Allocate the private tables */
 	err = gicv3_its_table_init(dev, sc);

That may not be the problem, but it is *a* flaw in the driver I found by reading the spec. We would be in a much better place had less time been spent by trying to railroad hacky workarounds into the tree and more time spent on actually investigating the problem to understand what exactly is going on. There is a good chance it is more complicated than "this field cannot be changed to this value". I'm not saying it's not that, but there is nowhere near enough evidence to conclusively state that.

I also note, once again, that Linux does *not* ignore failure to set the cache coherency, and they, like us, probably have good reason for that.

Sun, Feb 2, 10:33 PM

Sat, Feb 1

adrian added a comment to D48604: net80211: convert ni_txrate to a struct, with extra rate information.
In D48604#1112635, @bz wrote:

updated; now it actually does do _HT and _VHT as separate rates, although both LEGACY and HT set dot11rate. That simplifies everything else.

Thanks a lot for that.

Still being called TXRATE and not just RATE. You do not envision to need the same information to track RX?

Sat, Feb 1, 4:18 AM · wireless

Fri, Jan 31

adrian accepted D48738: HW Relnotes: Add umb(4) modems to Misc Networks.
Fri, Jan 31, 2:09 AM

Thu, Jan 30

adrian added a comment to D48604: net80211: convert ni_txrate to a struct, with extra rate information.

updated; now it actually does do _HT and _VHT as separate rates, although both LEGACY and HT set dot11rate. That simplifies everything else.

Thu, Jan 30, 5:17 AM · wireless
adrian updated the diff for D48616: net80211: update get_sta_info() to only populate isi_txrate for legacy rates.

update, add TXRATE_HT

Thu, Jan 30, 5:17 AM · wireless
adrian updated the diff for D48614: net80211: add static initialisers for the ieee80211_node_txrate options.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48615: net80211: migrate ieee80211_rate2media() to use ieee80211_node_txrate.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48613: net80211: update ieee80211_node_get_txrate_mbit() to support VHT.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48612: net80211: add ieee80211_phy_vht_get_mcs_kbit().

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48611: net80211: add VHT MCS in AMRR rate control.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48429: amrr: refactor amrr_node_init() into HT and legacy paths.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48248: net80211: refactor amrr_update() into HT and legacy paths.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48610: net80211: add ieee80211_vht_node_check_valid_mcs().

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48609: net80211: add node VHT transmit rate helper functions.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48608: net80211: add valid VHT MCS combinations and helper functions.

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48607: net80211: Implement ieee80211_setup_vht_rates().

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48606: rtwn: move to using ieee80211_node_get_txrate().

update, add TXRATE_HT

Thu, Jan 30, 5:16 AM · wireless
adrian updated the diff for D48605: net80211: add ieee80211_node_get_txrate() to populate the "new" transmit struct.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48604: net80211: convert ni_txrate to a struct, with extra rate information.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48613: net80211: update ieee80211_node_get_txrate_mbit() to support VHT.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48612: net80211: add ieee80211_phy_vht_get_mcs_kbit().

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48611: net80211: add VHT MCS in AMRR rate control.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48429: amrr: refactor amrr_node_init() into HT and legacy paths.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48248: net80211: refactor amrr_update() into HT and legacy paths.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48610: net80211: add ieee80211_vht_node_check_valid_mcs().

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48609: net80211: add node VHT transmit rate helper functions.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48608: net80211: add valid VHT MCS combinations and helper functions.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48607: net80211: Implement ieee80211_setup_vht_rates().

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48606: rtwn: move to using ieee80211_node_get_txrate().

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48605: net80211: add ieee80211_node_get_txrate() to populate the "new" transmit struct.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48604: net80211: convert ni_txrate to a struct, with extra rate information.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

update, add TXRATE_HT

Thu, Jan 30, 5:15 AM · wireless
adrian updated the diff for D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.

update, add TXRATE_HT

Thu, Jan 30, 5:14 AM · wireless
adrian added a comment to D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

updated, please re-review!

Thu, Jan 30, 2:27 AM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

address comments

Thu, Jan 30, 2:27 AM · wireless
adrian added a comment to D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

fixed, please re-review!

Thu, Jan 30, 12:46 AM · wireless
adrian updated the diff for D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

update, fix things from gavin/bz

Thu, Jan 30, 12:46 AM · wireless

Wed, Jan 29

adrian added inline comments to D48602: sys: convert ni->ni_txrate references use to the new net80211 API.
Wed, Jan 29, 4:26 AM · wireless

Tue, Jan 28

adrian updated the diff for D48611: net80211: add VHT MCS in AMRR rate control.

oops fix typo, thanks tom!

Tue, Jan 28, 9:30 PM · wireless
adrian added inline comments to D48611: net80211: add VHT MCS in AMRR rate control.
Tue, Jan 28, 9:27 PM · wireless

Mon, Jan 27

adrian added a comment to D47312: watchdog: Convert to using sbintime_t format.

thanks for doing this!

Mon, Jan 27, 7:19 PM
adrian added inline comments to D48604: net80211: convert ni_txrate to a struct, with extra rate information.
Mon, Jan 27, 12:49 AM · wireless
adrian added a comment to D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.

ok, addressed everything but mbit/half mbit variable naming, please re-review!

Mon, Jan 27, 12:18 AM · wireless
adrian updated the diff for D48616: net80211: update get_sta_info() to only populate isi_txrate for legacy rates.

rebase, address changes

Mon, Jan 27, 12:17 AM · wireless
adrian updated the diff for D48615: net80211: migrate ieee80211_rate2media() to use ieee80211_node_txrate.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48614: net80211: add static initialisers for the ieee80211_node_txrate options.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48613: net80211: update ieee80211_node_get_txrate_mbit() to support VHT.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48612: net80211: add ieee80211_phy_vht_get_mcs_kbit().

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48611: net80211: add VHT MCS in AMRR rate control.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48429: amrr: refactor amrr_node_init() into HT and legacy paths.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48248: net80211: refactor amrr_update() into HT and legacy paths.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48610: net80211: add ieee80211_vht_node_check_valid_mcs().

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48609: net80211: add node VHT transmit rate helper functions.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48608: net80211: add valid VHT MCS combinations and helper functions.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48607: net80211: Implement ieee80211_setup_vht_rates().

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48606: rtwn: move to using ieee80211_node_get_txrate().

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48605: net80211: add ieee80211_node_get_txrate() to populate the "new" transmit struct.

rebase, address changes

Mon, Jan 27, 12:16 AM · wireless
adrian updated the diff for D48604: net80211: convert ni_txrate to a struct, with extra rate information.

rebase, address changes

Mon, Jan 27, 12:15 AM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

rebase, address changes

Mon, Jan 27, 12:15 AM · wireless
adrian updated the diff for D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

rebase, address changes

Mon, Jan 27, 12:15 AM · wireless
adrian updated the diff for D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.

rebase, address changes

Mon, Jan 27, 12:15 AM · wireless

Sat, Jan 25

adrian added inline comments to D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.
Sat, Jan 25, 8:34 PM · wireless
adrian added inline comments to D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.
Sat, Jan 25, 8:33 PM · wireless

Fri, Jan 24

adrian updated the diff for D48616: net80211: update get_sta_info() to only populate isi_txrate for legacy rates.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48615: net80211: migrate ieee80211_rate2media() to use ieee80211_node_txrate.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48614: net80211: add static initialisers for the ieee80211_node_txrate options.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48613: net80211: update ieee80211_node_get_txrate_mbit() to support VHT.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48612: net80211: add ieee80211_phy_vht_get_mcs_kbit().

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48611: net80211: add VHT MCS in AMRR rate control.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48429: amrr: refactor amrr_node_init() into HT and legacy paths.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48248: net80211: refactor amrr_update() into HT and legacy paths.

rebase

Fri, Jan 24, 3:32 PM · wireless
adrian updated the diff for D48610: net80211: add ieee80211_vht_node_check_valid_mcs().

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48609: net80211: add node VHT transmit rate helper functions.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48608: net80211: add valid VHT MCS combinations and helper functions.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48607: net80211: Implement ieee80211_setup_vht_rates().

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48606: rtwn: move to using ieee80211_node_get_txrate().

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48605: net80211: add ieee80211_node_get_txrate() to populate the "new" transmit struct.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48604: net80211: convert ni_txrate to a struct, with extra rate information.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48603: net80211: change ieee80211_ratectl_rate() to not return a rix.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48602: sys: convert ni->ni_txrate references use to the new net80211 API.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian updated the diff for D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.

rebase

Fri, Jan 24, 3:31 PM · wireless
adrian added a comment to D45179: mt7601U: Importing if_mtw from OpenBSD.

I know you have some issues, but I reckon we can fix this during the -15 timeframe. I'd rather just have the driver in the tree, get people using it, and then fix whatever weird stuff pops up.

Fri, Jan 24, 3:24 AM
adrian accepted D45179: mt7601U: Importing if_mtw from OpenBSD.
Fri, Jan 24, 3:14 AM
adrian updated the summary of D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.
Fri, Jan 24, 2:36 AM · wireless
adrian added inline comments to D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.
Fri, Jan 24, 1:55 AM · wireless
adrian updated the summary of D48601: net80211: remove direct use of ni->ni_txrate, add indirection methods.
Fri, Jan 24, 1:55 AM · wireless
adrian updated the diff for D48616: net80211: update get_sta_info() to only populate isi_txrate for legacy rates.

rebase

Fri, Jan 24, 1:54 AM · wireless
adrian updated the diff for D48615: net80211: migrate ieee80211_rate2media() to use ieee80211_node_txrate.

rebase

Fri, Jan 24, 1:53 AM · wireless