Code Review for 2015-01-31

Prepared by: (jeffpc) on 2015-Feb-07 19:01 -0500 EST
Workspace:/home/jeffpc/illumos/arm/illumos-gate (at 330a17326839)
Compare against: arm-gate (at 75e27ad11e2a)
Summary of changes: 788 lines changed: 323 ins; 400 del; 65 mod; 4762 unchg
Patch of changes: 2015-01-31.patch
Printable review: 2015-01-31.pdf

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/lib/libdisasm/common/dis_arm.c

libdisasm: disassembly of strex may cause SIGSEGV
To make things confusing enough, the names of bitfields between ldrex and
strex are not totally consistent so this commit makes it easier on future
readers.
31 lines changed: 24 ins; 0 del; 7 mod; 2610 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/arm/misc/fake_stubs.c

arm: implement getfp
1 line changed: 0 ins; 1 del; 0 mod; 523 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/arm/ml/arm_subr.s

arm: implement getfp
5 lines changed: 5 ins; 0 del; 0 mod; 63 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/bcm2835/Makefile.files

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
3 lines changed: 1 ins; 1 del; 1 mod; 22 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/bcm2835/loader/bcm2835_ldep.c

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
80 lines changed: 19 ins; 29 del; 32 mod; 123 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/bcm2835/ml/locore.s

armv6: bcm2835 & qvpb have nearly identical locore _start
It makes sense to common-ize _start for all armv6 machines.  They will all
have to do the same basic setup.  If there is any machine specific setup
they need to do, they can do so in the new _mach_start function.
91 lines changed: 0 ins; 88 del; 3 mod; 25 unchg

------ ------ ------ ------ ------ --- New Patch Raw usr/src/uts/armv6/bcm2835/os/bcm2835_uart.c

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
140 lines changed: 140 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ --- New Patch Raw usr/src/uts/armv6/bcm2835/os/bcm2835_uart.h

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
39 lines changed: 39 ins; 0 del; 0 mod; 0 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/bcm2835/os/boot_console.c

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
7 lines changed: 0 ins; 0 del; 7 mod; 67 unchg

------ ------ ------ ------ ------ Old --- Patch --- usr/src/uts/armv6/bcm2835/os/miniuart.c (deleted)

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
150 lines changed: 0 ins; 150 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ Old --- Patch --- usr/src/uts/armv6/bcm2835/os/miniuart.h (deleted)

bcm2835: use the real uart instead of the mini-uart
The real uart is more capable.  We'll want to use it for the real console
eventually anyway, so let's bite the bullet now when no one will really
notice.  (For comparison, the Linux kernel uses the real uart and totally
lacks a driver for the miniuart.)
38 lines changed: 0 ins; 38 del; 0 mod; 0 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/ml/cache.s

armv6: bit 2 (0x4) enables the dcache
This fixes a pretty simple typo.  Sadly, this still isn't enough to get
bcm2835 past mutex_enter.
2 lines changed: 0 ins; 0 del; 2 mod; 249 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/ml/glocore.s

armv6: simplify highvecs enabling code
Use the barrel shifter, Luke.
armv6: bcm2835 & qvpb have nearly identical locore _start
It makes sense to common-ize _start for all armv6 machines.  They will all
have to do the same basic setup.  If there is any machine specific setup
they need to do, they can do so in the new _mach_start function.
armv6: bit 2 (0x4) enables the dcache
This fixes a pretty simple typo.  Sadly, this still isn't enough to get
bcm2835 past mutex_enter.
76 lines changed: 62 ins; 6 del; 8 mod; 136 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/os/fakebop.c

armv6: bop_panic should hexdump the stack
It's the little things that make debugging easier.
33 lines changed: 32 ins; 0 del; 1 mod; 925 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw usr/src/uts/armv6/qvpb/ml/locore.s

armv6: bcm2835 & qvpb have nearly identical locore _start
It makes sense to common-ize _start for all armv6 machines.  They will all
have to do the same basic setup.  If there is any machine specific setup
they need to do, they can do so in the new _mach_start function.
92 lines changed: 1 ins; 87 del; 4 mod; 19 unchg

This code review page was prepared using /opt/onbld/bin/webrev. Webrev is maintained by the illumos project. The latest version may be obtained here.