<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/drivers, branch debian/1.6.8-5</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-5</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-5'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2017-01-25T19:21:43+00:00</updated>
<entry>
<title>altos/arm: Align data so that gcc 5.4 doesn't do byte-accesses. Add -Wcast-align</title>
<updated>2017-01-25T19:21:43+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-12-18T04:58:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fe25510fc23031f1a3c1b42edd37067d1989a9f6'/>
<id>urn:sha1:fe25510fc23031f1a3c1b42edd37067d1989a9f6</id>
<content type='text'>
Gcc 5.4.1 tracks alignment of data through assignments, so that a
uint32_t pointer which comes from byte-aligned uint8_t data:

extern uint8_t foo[];

	uint32_t	*q = (void *) foo;

Fetches and stores through this pointer are done bytewise. This is
slow (meh), but if q references a device register, things to bad very
quickly.

This patch works around this bug in the compiler by adding
__attribute__((aligned(4))) tags to some variables, or changing them
from uint8_t to uint32_t. Places doing this will now be caught as I've
added -Wcast-align to the compiler flags. That required adding (void
*) casts, after the relevant code was checked to make sure the
compiler could tell that the addresses were aligned.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/cc1120: remove unused status from ao_radio_fifo_write_stop</title>
<updated>2016-08-29T16:27:53+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-29T16:27:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=ab75ab10564c4d5d05719c382a3b71585cd70710'/>
<id>urn:sha1:ab75ab10564c4d5d05719c382a3b71585cd70710</id>
<content type='text'>
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Use standard FIPS testing for chaoskey</title>
<updated>2016-08-02T23:55:11+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-02T23:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=826ad792389150ea8d80e341cb8ea023db83c9a2'/>
<id>urn:sha1:826ad792389150ea8d80e341cb8ea023db83c9a2</id>
<content type='text'>
Check to make sure we aren't repeating a block coming from the
unwhitened source, which is the standard online FIPS test for RNGs.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Make telelcotwo control two boxes instead of two pads</title>
<updated>2016-08-02T23:55:11+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-02T23:31:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=99753673a4a97423300427e276bf550ae5353842'/>
<id>urn:sha1:99753673a4a97423300427e276bf550ae5353842</id>
<content type='text'>
telefiretwo is now a single pad box, so telelcotwo needs to switch
between boxes instead of pads on the same box. Do this by re-purposing
the pad arming switches into a box selector and arming switch.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Add 'ao_button_get' to button driver</title>
<updated>2016-08-02T23:55:11+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-28T04:28:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=be84201495fa3cabd699012e57e797355e2bd792'/>
<id>urn:sha1:be84201495fa3cabd699012e57e797355e2bd792</id>
<content type='text'>
This returns the current state of the button; useful to check what the
value is at startup.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Expose cc1200 radio test functions for telemini bringup</title>
<updated>2016-07-27T20:24:57+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T20:24:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=71ddb973ff75680e78fbbef7978ab3893c367629'/>
<id>urn:sha1:71ddb973ff75680e78fbbef7978ab3893c367629</id>
<content type='text'>
This exposes the cc1200 radio test function so we can load special
test firmware in telemini to do the radio cal as it has no USB to
perform that interactively.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Don't access cc1120 SPI bus during recv after abort has started</title>
<updated>2016-07-27T20:17:51+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T20:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=2507b9f29d25f77de249103805087a704069c625'/>
<id>urn:sha1:2507b9f29d25f77de249103805087a704069c625</id>
<content type='text'>
When the receive timeout happens, the radio may still interrupt while
the SPI bus is getting shut down. If this happens, the interrupt
handler shouldn't touch the SPI bus at all as it may well be turned
off, which would cause the receive function to wedge waiting for a spi
byte transfer to happen.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>Switch from GPLv2 to GPLv2+</title>
<updated>2016-07-12T22:41:41+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-05T16:03:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a'/>
<id>urn:sha1:1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a</id>
<content type='text'>
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Use FIFO_THR pin for cc1120 transmit buffering</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-30T01:41:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=a04830a636a71808ea8ef5ac5dfa59d6978d9f3b'/>
<id>urn:sha1:a04830a636a71808ea8ef5ac5dfa59d6978d9f3b</id>
<content type='text'>
Instead of reading NUM_TXBYTES, set the FIFO_THR pin to indicate when
64 bytes are available in the buffer.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: cc1200: use FIFO threshold pin output for APRS buffering</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T19:49:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=3b3a24f5f39a1b72cc8947c33b609f454b46aff8'/>
<id>urn:sha1:3b3a24f5f39a1b72cc8947c33b609f454b46aff8</id>
<content type='text'>
Instead of polling the device for fifo space, just use the available
pin configuration to figure out if there is enough space for a single
APRS buffer. Then set the APRS buffer size to match the fifo threshold
setting in the chip so that we know we can write the whole APRS buffer
once the pin says there's space.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
</feed>
