History log of /freebsd-10.0-release/sys/arm/xscale/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


254025 07-Aug-2013 jeff

Replace kernel virtual address space allocation with vmem. This provides
transparent layering and better fragmentation.

- Normalize functions that allocate memory to use kmem_*
- Those that allocate address space are named kva_*
- Those that operate on maps are named kmap_*
- Implement recursive allocation handling for kmem_arena in vmem.

Reviewed by: alc
Tested by: pho
Sponsored by: EMC / Isilon Storage Division


249582 17-Apr-2013 gabor

- Correct mispellings of the word occurrence

Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)


249449 13-Apr-2013 dim

Fix undefined behaviour in several gpio_pin_setflags() routines (under
sys/arm and sys/mips), squelching the clang 3.3 warnings about this.

Noticed by: tinderbox and many irate spectators
Submitted by: Luiz Otavio O Souza <loos.br@gmail.com>
PR: kern/177759
MFC after: 3 days


247564 01-Mar-2013 alc

Eliminate a redundant #include: machine/pmap.h is already included
through vm/pmap.h.


247429 28-Feb-2013 attilio

Complete r247297:
Remove unused inclusions of vm/vm_pager.h and vm/vnode_pager.h.

Sponsored by: EMC / Isilon storage division


247046 20-Feb-2013 alc

Initialize vm_max_kernel_address on non-FDT platforms. (This should have
been included in r246926.)

The second parameter to pmap_bootstrap() is redundant. Eliminate it.

Reviewed by: andrew


243882 05-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags within sys.

Exceptions:

- sys/contrib not touched
- sys/mbuf.h edited manually


243194 17-Nov-2012 andrew

Clean up the two i80321 copies of initarm to be closer to one another.


241885 22-Oct-2012 eadler

This isn't functionally identical. In some cases a hint to disable
unit 0 would in fact disable all units.

This reverts r241856

Approved by: cperciva (implicit)


241856 22-Oct-2012 eadler

Now that device disabling is generic, remove extraneous code from the
device drivers that used to provide this feature.

Reviewed by: des
Approved by: cperciva
MFC after: 1 week


240802 22-Sep-2012 andrew

Create a common set_stackptrs in sys/arm/machdep.c.

On single core devices set_stackptrs is only ever called with cpu = 0 in
initarm and will be identical to the existing function. On SMP this needs
to be implemented for sys/arm/mp_machdep.c, but the implementations are
identical for each SoC.


239362 18-Aug-2012 andrew

Set machine correctly on ARM. This allows universe to use the correct world
when building each kernel.

Reviewed by: imp


239351 17-Aug-2012 rpaulo

The GPIO drivers were initialising their mutexes with type of
MTX_NETWORK_LOCK. This is wrong since these mutexes have nothing to do
with networking.


239268 15-Aug-2012 gonzo

Merging projects/armv6, part 1

Cummulative patch of changes that are not vendor-specific:
- ARMv6 and ARMv7 architecture support
- ARM SMP support
- VFP/Neon support
- ARM Generic Interrupt Controller driver
- Simplification of startup code for all platforms


238545 17-Jul-2012 gonzo

Move unmask IRQ function call up to nexus device level.

FDT-enabled targets were broken after r238043 that relies
on device up the hierarchy to properly setup interrupt.
nexus device for ARM platforms did job only partially:
setting handler but not unmasking interrupt. Unmasking
was performed by platform code.

Reviewed by: andrew@


238329 10-Jul-2012 imp

Remove some unused variables/externs that have been copied too many times...


238327 10-Jul-2012 imp

Not quite ready for this yet, so comment it out.


237741 29-Jun-2012 imp

All xscale ports are armeb, so mark it here. This should reduce universe
times a little.


237089 14-Jun-2012 imp

Fix missing straggler for the move to parse_boot_param()


237045 14-Jun-2012 imp

More Linux boot support. Create arm_dump_avail_init() to initialize
this array either from Linux boot data, when enabled, or in the
typical way that most ports do it. arm_pyhs_avail_init is coming
soon since it must be a separate function.


237040 14-Jun-2012 imp

Modify all the arm platform files to call parse_boot_param passing in
the boot parameters from initarm first thing. parse_boot_param parses
the boot arguments and converts them to the /boot/loader metadata the
rest of the kernel uses. parse_boot_param is a weak alias to
fake_preload_metadata, which all the platforms use now, but may become
more extensive in the future.

Since it is a weak symbol, specific boards may define their own
parse_boot_param to interface to custom boot loaders.

Reviewed by: cognet@, Ian Lapore


237010 13-Jun-2012 imp

Remove leakage of other patches into last commit.


236987 13-Jun-2012 imp

trim trailing spaces that have accumulated over the years (these files
served as the basis for too many other platforms).


236846 10-Jun-2012 andrew

Remove an unneeded increment from initarm. The variable is uninitialised,
is not used in this part of the function and correctly initialised later
when it is used.


236828 10-Jun-2012 andrew

Pull out the common code to initialise proc0 & thread0 from initarm to a
common function.

Reviewed by: imp


236524 03-Jun-2012 imp

Minor rearrangement of the locore <-> initarm interface. Pass in a
structure with the first 4 registers to allow a wider range of boot
loaders to work. Future commits will make use of this to centralize
support for the different loaders.


235273 11-May-2012 imp

Remove obsolte big endian flag. It is no longer needed.


234004 07-Apr-2012 stas

- Add new ARM kernel option QEMU_WORKAROUNDS which can be
used in the code which needs to implement some specific
behaviour when being run under QEMU.
- Make PXA UART probe code to work under QEMU gumstix, which
doesn't emulate all the ports properly.


232295 29-Feb-2012 cognet

Make sure we do not provide the page 0 to the VM. It can't handle it properly,
because pmap_extract() returns 0 when there's no mapping.

PR: arm/154227
MFC after: 1 week


229125 31-Dec-2011 marius

Fix header pollution, possibly unbreaking the build of cfi_bus_ixp4xx.c
as part of cfi.ko.


227849 22-Nov-2011 hselasky

Rename device_delete_all_children() into device_delete_children().

Suggested by: jhb @ and marius @
MFC after: 1 week


227843 22-Nov-2011 marius

- There's no need to overwrite the default device method with the default
one. Interestingly, these are actually the default for quite some time
(bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9)
since r52045) but even recently added device drivers do this unnecessarily.
Discussed with: jhb, marcel
- While at it, use DEVMETHOD_END.
Discussed with: jhb
- Also while at it, use __FBSDID.


227701 19-Nov-2011 hselasky

Move the device_delete_all_children() function from usb_util.c
to kern/subr_bus.c. Simplify this function so that it no longer
depends on malloc() to execute. Identify a few other places where
it makes sense to use device_delete_all_children().

MFC after: 1 week


227309 07-Nov-2011 ed

Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.

The SYSCTL_NODE macro defines a list that stores all child-elements of
that node. If there's no SYSCTL_DECL macro anywhere else, there's no
reason why it shouldn't be static.


227293 07-Nov-2011 ed

Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs.

This means that their use is restricted to a single C file.


226832 27-Oct-2011 kevlo

Check the return value of BUS_SETUP_INTR()

Reviewed by: imp


226325 12-Oct-2011 thompsa

Name these gpio pins better, they are on an external PLD and not the same as
the cpu wired gpio.


226324 12-Oct-2011 thompsa

Dont just set the pin high when turning on output, use the current value. Also
let this value be set when in input mode.


226034 05-Oct-2011 thompsa

Add missing newbus glue, this has never attached properly to gpiobus.


220836 19-Apr-2011 pluknet

Call init_param1() much earlier, so that msgbufsize is non-zero when we want
to map and use the msgbuf.

Reviewed by: cognet
MFC after: 1 week


219025 25-Feb-2011 obrien

Add a real dependency on the microcode.
Now when one does 'make kernel ; make kernel' the second invocation
only does: `kernel.ko' is up to date.
rather than reproduce all the binary microcode files and relink the kernel.
[continuation of r212429]


218913 21-Feb-2011 cognet

Get myself a brain, move the call to init_param1() before the first use in
at91_machdep.c, and do it for the files I forgot the first time

Reported by: andrew
Submitted by: pluknet


218909 21-Feb-2011 brucec

Fix typos - remove duplicate "the".

PR: bin/154928
Submitted by: Eitan Adler <lists at eitanadler.com>
MFC after: 3 days


218666 13-Feb-2011 cognet

Call init_param1() much earlier, so that msgbufsize is non-zero when we want
to map and use the msgbuf.


217688 21-Jan-2011 pluknet

Make MSGBUF_SIZE kernel option a loader tunable kern.msgbufsize.

Submitted by: perryh pluto.rain.com (previous version)
Reviewed by: jhb
Approved by: kib (mentor)
Tested by: universe


216681 23-Dec-2010 imp

IXP4XX_GPIO_{,UN}LOCK() don't take args. Remove the sc here to make
this compile again.


215319 14-Nov-2010 thompsa

Provide a mutex around the read/modify/write of the IXP425_GPIO_*
registers. Giant was used in some places, but not all.


215142 11-Nov-2010 thompsa

Add a GPIO driver for the Gateworks Cambria platform.

The external gpio pins are connected to a PLD on the i2c bus, unfortunatley
this device does not conform by failing to send an ack after each byte written.
The iicbb driver will abort the transfer when the address is not ack'd and it
would introduce a lot of churn to be able to pass a flag down to
iicbb_start/iicbb_write. Instead we do bad things by grabbing the iicbus but
then doing our own bit banging.


215034 09-Nov-2010 brucec

Fix typos.

PR: bin/148894
Submitted by: olgeni


214948 07-Nov-2010 thompsa

Remove line for the uncommitted Cambria gpio drive that snuck in with r214946.


214946 07-Nov-2010 thompsa

Hook up the five gpio pins on the Avila board to the gpio framework. There are
actually 16 I/O lines but the other ones are used for system devices and
interrupts.

The IXP4XX platform can set interrupts on these pins for
high/low/rising/falling/transitional but this is not implemented yet.

The Cambria has the same interface but as all the pins are assigned to system
functions the gpio header is toggled via a PLD on the i2c bus and is not
supported by this commit.


213893 15-Oct-2010 marius

Convert the PHY drivers to honor the mii_flags passed down and convert
the NIC drivers as well as the PHY drivers to take advantage of the
mii_attach() introduced in r213878 to get rid of certain hacks. For
the most part these were:
- Artificially limiting miibus_{read,write}reg methods to certain PHY
addresses; we now let mii_attach() only probe the PHY at the desired
address(es) instead.
- PHY drivers setting MIIF_* flags based on the NIC driver they hang
off from, partly even based on grabbing and using the softc of the
parent; we now pass these flags down from the NIC to the PHY drivers
via mii_attach(). This got us rid of all such hacks except those of
brgphy() in combination with bce(4) and bge(4), which is way beyond
what can be expressed with simple flags.

While at it, I took the opportunity to change the NIC drivers to pass
up the error returned by mii_attach() (previously by mii_phy_probe())
and unify the error message used in this case where and as appropriate
as mii_attach() actually can fail for a number of reasons, not just
because of no PHY(s) being present at the expected address(es).

Reviewed by: jhb, yongari


212413 10-Sep-2010 avg

bus_add_child: change type of order parameter to u_int

This reflects actual type used to store and compare child device orders.
Change is mostly done via a Coccinelle (soon to be devel/coccinelle)
semantic patch.
Verified by LINT+modules kernel builds.

Followup to: r212213
MFC after: 10 days


207554 03-May-2010 sobomax

Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after: 1 month


205705 26-Mar-2010 rpaulo

Pass the correct pointer to fled_cb().


204198 22-Feb-2010 rpaulo

Fix previous commit: led_func() doesn't exist, it should be fled_cb().

Pointed out by: bz


203752 10-Feb-2010 rpaulo

Turn on the front LED at boot time like we do with the Avila.


200928 23-Dec-2009 rpaulo

Intel XScale hwpmc(4) support.

This brings hwpmc(4) support for 2nd and 3rd generation XScale cores.
Right now it's enabled by default to make sure we test this a bit.
When the time comes it can be disabled by default.
Tested on Gateworks boards.

A man page is coming.

Obtained from: //depot/user/rpaulo/xscalepmc/...


197733 03-Oct-2009 rpaulo

Remove remaining bits of performance counter support.

Submitted by: Tom Judge <tom at tomjudge.com>


197704 02-Oct-2009 rpaulo

Remove performance counter headers. This code came from NetBSD, but our
hardware perf. counter support is different, so we don't need these
files.

Reviewed by: freebsd-arm (no comments)


196479 23-Aug-2009 cognet

No need to remove the same flag multiple times.


195049 26-Jun-2009 rwatson

Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs. This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by: re (kib)
MFC after: 6 weeks


194784 23-Jun-2009 jeff

Implement a facility for dynamic per-cpu variables.
- Modules and kernel code alike may use DPCPU_DEFINE(),
DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined
PCPU_*. Requires only one extra instruction more than PCPU_* and is
virtually the same as __thread for builtin and much faster for shared
objects. DPCPU variables can be initialized when defined.
- Modules are supported by relocating the module's per-cpu linker set
over space reserved in the kernel. Modules may fail to load if there
is insufficient space available.
- Track space available for modules with a one-off extent allocator.
Free may block for memory to allocate space for an extent.

Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas


194753 23-Jun-2009 sam

Now that we have UARTs running with fast interrupt handlers the ata
driver's i/o ops must be locked to avoid chaos. Extend the cambria
bus tag to support ata and add a spin lock. The ata driver is
hacked to use that instead of it's builtin hack for ixp425. Once
the ata driver is fixed to not be confused about byte order we can
generalize the cambria bus tag code and make it generally useful.

While here take advantage of our being ixp435-specific to remove
delays when switching between byte+word accesses and to eliminate
the 2us delay for the uarts (the spin lock overhead looks to do
this for us).


194752 23-Jun-2009 sam

use consistent style


194670 22-Jun-2009 sam

o add a bus space tag that forces a 2usec delay between r/w ops; this is
used for the optional GPS+RS485 uarts on the Gateworks Cambria boards
which otherwise are unreliable
o setup the hack bus space tag for the GPS+RS485 uarts
o program the gpio interrupts for the uarts to be edge-rising
o force timing on the expansion bus for the uarts to be "slow"

Thanks to Chris Lang of Gateworks for these tips.


194668 22-Jun-2009 sam

o remove hack to write UUE+RTOIE in the uart's IER; force them with hints
o honor hints for the rclk


194656 22-Jun-2009 sam

hook arm_post_filter to ACK GPIO interrupts; this fixes the interrupt
storm observed on the GPS+RS485 uarts on Gateworks Cambria boards

Reviewed by: cognet


194655 22-Jun-2009 sam

always define Cambria GPS+RS485 mappings as they are no longer conditional


194654 22-Jun-2009 sam

map the optional GPS and RS485 uart's on the Gateworks Cambria board
(may want to make these conditional)


194653 22-Jun-2009 sam

add ixp425_set_gpio to program the gpio interrupt type


194652 22-Jun-2009 sam

rewrite arm_get_next_irq to always make forward progress (should be optimized)


194651 22-Jun-2009 sam

kill stray whitespace


194650 22-Jun-2009 sam

move logic to ACK a GPIO to a separate function


194649 22-Jun-2009 sam

swap order in ddb show gpio printf


194648 22-Jun-2009 sam

make type use consistent


194378 17-Jun-2009 sam

Add workaround to get IXP435 NPE-A working: reseting NPE-A after NPE-C
causes both to become inoperative; this apparently was done by the original
IAL code as a workaround for IMEM parity errors which we've not seen so
just disable the reset.

Note this problem does not occur on IXP425 boards. The linux driver does
fuse-resets on each NPE but in the order NPE-A < NPE-B < NPE-C (when probing
for which NPE's are present/operational); we may want to switch to a similar
scheme but for now disable the resets until we see an issue.


194325 17-Jun-2009 sam

correct data/instruction memory sizes for non-ixp425 parts (these
are only used to bounds-check writes when loading firmware)


194322 17-Jun-2009 sam

remove IAL vestige for defining the max data/instruction memory size;
instead of defining them according to ixp46x add new defines so we can
do this at run time


194321 17-Jun-2009 sam

o correct default miibase for NPE-B and NPE-C; these values are
normally taken from the hints file so this should have no effect
o set the port address "just in case"
o add NPE-A support to the tx done qmgr callback


194319 17-Jun-2009 sam

add ixp4xx_write_feature_bits


194044 12-Jun-2009 imp

devclass_find_free_unit(xxx, 0) is identical to -1 for most
applications (including this one). Switch to it since the former is a
racy interface.


194015 11-Jun-2009 avg

strict kobj signatures: number of fixes for arm architecture

no functional changes should result

Reviewed by: imp, current@
Approved by: jhb (mentor)


193847 09-Jun-2009 marcel

Pass the previously returned IRQ back to arm_get_next_irq() so that
the implementation can guarantee forward progress in the event of
a stuck interrupt or interrupt storm. This is especially critical
for fast interrupt handlers, as they can cause a hard hang in that
case. When first called, arm_get_next_irq() is passed -1.

Obtained from: Juniper Networks, Inc.


193104 30-May-2009 sam

maintain existing style


193096 30-May-2009 attilio

When user_frac in the polling subsystem is low it is going to busy the
CPU for too long period than necessary. Additively, interfaces are kept
polled (in the tick) even if no more packets are available.
In order to avoid such situations a new generic mechanism can be
implemented in proactive way, keeping track of the time spent on any
packet and fragmenting the time for any tick, stopping the processing
as soon as possible.

In order to implement such mechanism, the polling handler needs to
change, returning the number of packets processed.
While the intended logic is not part of this patch, the polling KPI is
broken by this commit, adding an int return value and the new flag
IFCAP_POLLING_NOCOUNT (which will signal that the return value is
meaningless for the installed handler and checking should be skipped).

Bump __FreeBSD_version in order to signal such situation.

Reviewed by: emaste
Sponsored by: Sandvine Incorporated


192901 27-May-2009 thompsa

Delete the old USB stack. The new stack has settled in and has all the
drivers/functionality and then some.


192660 23-May-2009 sam

accumulate npe statistics and expose them through dev.npe.X.stats


192599 22-May-2009 des

Expand $FreeBSD$


189651 10-Mar-2009 sam

add IXP4XX_FLASH_SIZE config knob that can be used to override the default
flash size; this is necessary at the moment because we map all of flash at
boot, eventually we'll do this on the fly


189650 10-Mar-2009 sam

map CS0 on 2358 so flash is accessible


189645 10-Mar-2009 sam

mark device capable of vlan-size frames

Obtained from: netbsd


189642 10-Mar-2009 sam

turn off inclusion of FCS in rx'd frames; we don't use it anywhere and
dhclient gets annoyed when it receives FCS in frames via bpf


189641 10-Mar-2009 sam

o add missing bus_release_resource and bus_deactivate_resource that just
operate on the resource (we have no local resources to manage); this
fixes drivers that alloc/release resources in their probe method and
then do it again in attach
o while here add some prints to catch failures and massage style a bit


189633 10-Mar-2009 sam

bring in ddb "show gpio" support from Cambria branch


189632 10-Mar-2009 sam

Small cleanup of memory resource allocation from Cambria branch:
o encode need for A4 bus space tag hackery according to the memory
address; checking for "uart" breaks down with the GPS chip support
which is also a uart but does not require the same hackery
o encode the correct memory window instead of carving up all of i/o
space, potentially with a larger window than a device should have;
this likely should be handled in the drivers by using a proper bus
alloc call but since some drivers depend on the bus support to figure
this out we cannot simply mod them
o add optional GPS and RS485 support (conditionally as the support
isn't ready yet)


189630 10-Mar-2009 sam

catch up with r189306; handle delayed activation of resources

Submitted by: jhb


189548 08-Mar-2009 sam

o mark unexpected callbacks more clearly
o unwrap some lines


189463 06-Mar-2009 sam

Cleanup virtual device mapping some more:
o improves understandability by replacing numerous relative address
calculations with fixed addresses; everything should now match up
more easily with the vm layout shown at the top of the file
o move the expansion bus chip select regions to be contiguous with
the expansion bus configuration area; this is not exploited right
now but allows map consolidation in the future
o leave a gap between the expansion bus regions and the pci config
space in case we want to map more exp bus cs regions

Reviewed by: imp, thompsa


189461 06-Mar-2009 sam

remove unneeded static mappings for NPE and MAC regions; these are
already mapped through the IO region so never used

Reviewed by: imp, thompsa


189457 06-Mar-2009 sam

fix legacy usb configuration


189456 06-Mar-2009 sam

o simplify code in ixppcib_conf_setup
o fixup debug printfs


189020 24-Feb-2009 thompsa

Update paths for ehci_ixp4xx.c in the old and new stacks.


188505 11-Feb-2009 sam

fix ARM_USE_SMALL_ALLOC after memory layout changes

Submitted by: cognet


188088 03-Feb-2009 sam

Add support for the StrataFlash on 2348 boards:
o add bus shim for cfi driver
o add static mapping for CS0 (we map all 16M as the cfi driver doesn't
support demand mapping)

Note this needs some tweaking to work for 2358 boards which is why the
CAMBRIA config is not touched.


187340 16-Jan-2009 cognet

Remove a duplicate #include.


186441 23-Dec-2008 sam

move IXP4XX EHCI bus shim to the usb directory and rename


186420 23-Dec-2008 sam

NPE cleanups needed for ancillary drivers (e.g. crypto acceleration):
o check feature bits when probing NPE ethernet support
o move firmware loading logic from if_npe to core npe support
o allow multiple refs to core NPE driver
o while here fix hw.npe.debug tunable path


186419 23-Dec-2008 sam

kill NPE_PORTS_MAX, it's not used and likely will not be


186418 23-Dec-2008 sam

Fill in feature control support:
o add definitions for more bits, for masking out IXP465-specific bits,
and %b format string
o add ixp4xx_read_feature_bits to retrieve the mask of valid features
(aka fuse bits)
o add cpu_is_ixp42x() macro
o print feature bits at boot


186416 23-Dec-2008 sam

o enable TT and big-endian MMIO
o force a reset before ehci_init to get byte-select setup

LS, FS, and HS devices now work on the Cambria board


186352 20-Dec-2008 sam

Merge support for Gateworks Cambria boards:
o add support for IXP435 cpu's (e.g. 64 irq's)
o add support for Cambria-specific devices: npe, led's (front panel and
octal latch), ehci, mcu, ide cf
o redo memory mapping for xscale/ixp4xx boards: previously memory
was assumed aliased to 0x10000000 but this appears to be true only
for ixp425 systems and breaks operation on others; rework so memory
is assumed to start at 0
o rework NPE configuration support to use NPE id's instead of port #'s;
these changes also rename the associated MAC's to follow the NPE's
they are attached to
o update npe firmware to latest rev (same license) and update default fw
imageid's to match; in particular this adds NPE-A and crypto support
o re-style NPE fw handling code and add a console msg identifying the
attributes of the loaded fw
o fix numerous problems with handling failures during npe setup
o fix npe rx q setup; need to spin waiting for mailbox responses during
early boot stages as qmgr interrupts are not delivered; this fixes
the problem where all 8 traffic classifications were not tied to the
rx q (and eliminates the console msg "remember to fix rx q setup")
o add DELAY to npe MII wait logic for IXP435
o strip down builtin phys->virt address translation table in resource
handling to just those resources that require it and add a console msg
to alert people when this (kludge) table needs to be extended
o purge a bunch of dead netbsd-ism's
o cleanup avila led driver
o add Cambria support to boot2 and rework code for better multi-board support

Notes:
1. NPE-A doesn't work and causes NPE-C to stop working; it is disabled
in the hints
2. USB isn't working yet; controller communicates ok but device
discovery fails
3. Cambria support must be configured separately from IXP425 boards;
multi-board support is TBD

Sponsored by: Hobnob, Gateworks (board donation)
Reviewed by: imp


185513 01-Dec-2008 stas

- Fix spelling error in comments.

PR: arm/128891
Submitted by: Pavel Pankov <pankov_p@mail.ru>
Approved by: kib (mentor)


183886 14-Oct-2008 sam

correct sizeof calculation

PR: arm/128095
Submitted by: Henning Petersen
MFC after: 1 week


183557 02-Oct-2008 bms

Allow static hints to override kenv.


182946 11-Sep-2008 cognet

Bandaid: disable interrupts to make sure intr_enabled and the IER register
are in sync. I'm not sure why it is needed, and why it wouldn't be on other
arm platforms, but it prevents a lockup under heavy I/O.


182932 11-Sep-2008 raj

IXP425: split handling of the two QMGR interrupts so they are separately
managed. Adjust ixpqmgr_{attach,detach} to comply with device_* interface.

Reviewed by: cognet, imp, sam, stass
Tested by: cognet


181303 04-Aug-2008 jhb

Add locking to the various iicbus(4) bridge drivers:
- Just grab Giant in the ixp425_iic(4) driver since this driver uses
a shared address/data register window pair to access the actual
I2C registers. None of the other ixp425 drivers lock access to these
shared address/data registers yet and that would need to be done before
this could use any meaningful locking.
- Add locking to the interrupt handler and 'iicbus_reset' methods of the
at91_twi(4) driver.
- Add locking to the pcf(4) driver. Other pcf(4) fixes include:
- Don't needlessly zero the softc.
- Use bus_foo rather than bus_space_foo and remove bus space tag and
handle from softc.
- The lpbb(4) driver just grabs Giant for now. This will be refined later
when ppbus(4) is locked.
- As was done with smbus earlier, move the DRIVER_MODULE() lines to match
the bus driver (either iicbus or iicbb) to the bridge driver into the
bridge drivers.

Tested by: sam (arm/ixp425)


180584 18-Jul-2008 alc

Eliminate unused global variables. (These global variables became fields of
struct kva_md_info many years ago.)


179745 12-Jun-2008 kevlo

Fix a typo: i80321_pci_probe -> i81342_pci_probe


179701 10-Jun-2008 kevlo

Add the pxa_teardown_intr() bus method function to de-associate the
interrupt handler


179700 10-Jun-2008 kevlo

Pull all the code to deal with bus space methods into a shared set of
routines.


179664 09-Jun-2008 kevlo

Remove sa1_cache_clean_addr


179663 09-Jun-2008 kevlo

Unify arminit() and clean up


179595 06-Jun-2008 benno

Support for the XScale PXA255 SoC as found on the Gumstix Basix and Connex
boards. This is enough to net-boot to multiuser.

Also supported is the SMSC LAN91C111 parts used on the netCF, netDUO and netMMC
add-on boards.

I'll be putting some instructions on how to boot this on the Gumstix boards
online soon.

This is still fairly rough and will be refined over time but I felt it was
better to get this out there where other people can help out.


178001 08-Apr-2008 kevlo

Remove some long-dead code

Reviewed by: cognet


177944 05-Apr-2008 cognet

Remove bus_space_generic.c from the per-plarform files. Having it in the
per-cpu files should be enough.


177943 05-Apr-2008 cognet

Add bus_space_generic.c for the i81342 as well.


177887 03-Apr-2008 raj

Refactor certain ARM bus space methods: instead of having multiple copies of
the same code introduce sys/arm/arm/bus_space_generic.c for a shared set of
routines.

Reviewed by: sam
Approved by: cognet (mentor)


177886 03-Apr-2008 raj

Fix AVILA build.

Reviewed by: sam
Approved by: cognet(mentor)


177883 03-Apr-2008 imp

Take the first baby step towards unifying and cleaning up arminit():
- Pull all the code to deal with the trampoline stuff into one
centeralized place and use it from everywhere.
- Some minor style tidiness

Reviewed by: tinguely


177874 03-Apr-2008 imp

KERNBASE + 0x00200000 is the same thing as KERNVIRTADDR on this
platform, so use the latter in preference to the former. This makes
the fake_preload setup be the same between kb920x_machdep.c and
avila_machdep.c....


177505 22-Mar-2008 sam

Improve mac+phy configuration so that hints can be used to describe
layouts different than the defaults:
o hint.npe.0.mac="A", "B", etc. specifies the window for MAC register accesses
o hint.npe.0.mii="A", "B", etc. specifies PHY registers
o hint.npe.1.phy=%d specifies the PHY to map to a port

This allows devices like NSLU to be setup w/o code changes and will
also be used for forthcoming support for more Avila boards.

Reviewed by: imp
MFC after 1 week


177456 20-Mar-2008 sam

map device 5; the optional USB controller on Gateworks 2348 boards
shows up here instead of the minipci slot at J4

Reviewed by: cognet, imp
MFC after: 1 week


177091 12-Mar-2008 jeff

Remove kernel support for M:N threading.

While the KSE project was quite successful in bringing threading to
FreeBSD, the M:N approach taken by the kse library was never developed
to its full potential. Backwards compatibility will be provided via
libmap.conf for dynamically linked binaries and static binaries will
be broken.


176759 03-Mar-2008 kevlo

Convert to be a 2-clause bsd-only license.

Pointed out by: rwatson


176588 26-Feb-2008 rwatson

On the ixp425, when we fail to initialize the memory rman instance, the
panic message should read "memory", not "IRQ".

MFC after: 3 days


175418 17-Jan-2008 jhb

- Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and
re_defrag() and use m_collapse() instead.
- Replace a reference to ath_defrag() in a comment in if_wpi.c with
m_collapse().


173361 05-Nov-2007 kib

Fix for the panic("vm_thread_new: kstack allocation failed") and
silent NULL pointer dereference in the i386 and sparc64 pmap_pinit()
when the kmem_alloc_nofault() failed to allocate address space. Both
functions now return error instead of panicing or dereferencing NULL.

As consequence, vmspace_exec() and vmspace_unshare() returns the errno
int. struct vmspace arg was added to vm_forkproc() to avoid dealing
with failed allocation when most of the fork1() job is already done.

The kernel stack for the thread is now set up in the thread_alloc(),
that itself may return NULL. Also, allocation of the first process
thread is performed in the fork1() to properly deal with stack
allocation failure. proc_linkup() is separated into proc_linkup()
called from fork1(), and proc_linkup0(), that is used to set up the
kernel process (was known as swapper).

In collaboration with: Peter Holm
Reviewed by: jhb


173336 04-Nov-2007 cognet

Remove a staled comment, NPE-C should work fine.

Reviewed by: sam


172568 12-Oct-2007 kevlo

Spelling fix for interupt -> interrupt


172394 30-Sep-2007 marius

Make the PCI code aware of PCI domains (aka PCI segments) so we can
support machines having multiple independently numbered PCI domains
and don't support reenumeration without ambiguity amongst the
devices as seen by the OS and represented by PCI location strings.
This includes introducing a function pci_find_dbsf(9) which works
like pci_find_bsf(9) but additionally takes a domain number argument
and limiting pci_find_bsf(9) to only search devices in domain 0 (the
only domain in single-domain systems). Bge(4) and ofw_pcibus(4) are
changed to use pci_find_dbsf(9) instead of pci_find_bsf(9) in order
to no longer report false positives when searching for siblings and
dupe devices in the same domain respectively.
Along with this change the sole host-PCI bridge driver converted to
actually make use of PCI domain support is uninorth(4), the others
continue to use domain 0 only for now and need to be converted as
appropriate later on.
Note that this means that the format of the location strings as used
by pciconf(8) has been changed and that consumers of <sys/pciio.h>
potentially need to be recompiled.

Suggested by: jhb
Reviewed by: grehan, jhb, marcel
Approved by: re (kensmith), jhb (PCI maintainer hat)


172358 27-Sep-2007 cognet

Ok I hope I got it right this time.
After discussion with Sam, switch back to use firmware(9) instead of
having the firmware in hex format.
Put the binary firmware uuencoded into sys/contrib/dev/npe, and slap a
LICENSE file, as found on the Intel website.

Approved by: re (blanket), mux (mentor)
MFC After: 1 week


172357 27-Sep-2007 cognet

Now that Intel changed the license for the NPE firmware, import it directly
hexed into our tree, instead of requiring the user to download it.

Approved by: re (blanket)
MFC after: 1 week


172299 22-Sep-2007 cognet

Add various macros for the ADMA unit.

Approved by: re (blanket)


172297 22-Sep-2007 cognet

Add a driver for the 7seg found on the CRB board, largely based on the
IQ31244 version.

Approved by: re (blanket)


172046 04-Sep-2007 cognet

There's no need to re-read PCIR_COMMAND once we set it.

Approved by: re (blanket)


171629 27-Jul-2007 cognet

Cleanup

Approved by: re (blanket)


171628 27-Jul-2007 cognet

Do not define NIRQ, it is already defined in include/intr.h

Approved by: re (blanket)


171627 27-Jul-2007 cognet

Share the timer and watchdog drivers with the i81342. It's the same,
except it uses different registers.

Approved by: re (blanket)


171626 27-Jul-2007 cognet

Add initial IOP342 support.
Thanks to Intel for providing sample hardware.

Approved by: re (blanket)


170109 29-May-2007 jhay

Remove the hardcoded IXP425_UART?_VBASE values in the
uart_ixp425_probe() and uart_cpu_getdev(). Change
uart_cpu_getdev() to use hints to find the console.

Reviewed by: marcel


170069 28-May-2007 jhay

We do not need to get the irq out of ivars in ixp425_setup_intr(). By
this time they have already been set. In fact trying to set it here too
breaks irqs for pci devices.


170068 28-May-2007 jhay

Optimize a bit more, both the Avila and Pronghorn Metro boards work with
GPIO_TYPE_EDG_RISING.

Reviewed by: sam


169954 24-May-2007 sam

Search for a proper ucode image to use by incrementing the minor
release number up to the max. This should eliminate the need to
tweak the default imageid define for later releases that are found
on the Intel web site.

MFC after: 1 month


169952 24-May-2007 sam

Move to hints for configuring numerous devices so we can eliminate various
quirky code: uarts, led, cf/ide, ixpqmgr, npe are now specified with hints.

May want to put some of these devices back in the code and just use hints
to override/specify configuration.

MFC after: 1 month


169950 24-May-2007 sam

Don't muck with the internal state of a uart during probe, all we
should setup is the class. This corrects an issue where enabling
uart1 on the avila board caused uart0 to stop working during boot
(no msgs generated by rc scripts were displayed).

Reviewed by: imp
MFC after: 3 weeks


169947 24-May-2007 sam

Fix interrupt setup; rev 1.3 switched the irq to GPIO_TYPE_ACT_LOW
but this does not work on avila boards; special case them to use
GPIO_TYPE_EDG_RISING.

MFC after: 3 weeks
Submitted by: jhay


169900 23-May-2007 cognet

Remove duplicate includes.

Submitted by: Cyril Nguyen Huu <cyril ci0 org>


169230 03-May-2007 kevlo

Remove sa1_cache_clean_addr. It isn't needed.


168281 02-Apr-2007 marcel

Don't expose the uart_ops structure directly, but instead have
it obtained through the uart_class structure. This allows us
to declare the uart_class structure as weak and as such allows
us to reference it even when it's not compiled-in.
It also allows is to get the uart_ops structure by name, which
makes it possible to implement the dt tag handling in uart_getenv().
The side-effect of all this is that we're using the uart_class
structure more consistently which means that we now also have
access to the size of the bus space block needed by the hardware
when we map the bus space, eliminating any hardcoding.


167950 27-Mar-2007 n_hibma

Revisit the watchdogs: Resetting the error to EINVAL after failing to set the
watchdog might hide the succesful arming of an earlier one. Accept that on
failing to arm any watchdog (because of non-supported timeouts) EOPNOTSUPP is
returned instead of the more appropriate EINVAL.

MFC after: 3 days


167570 14-Mar-2007 jhay

Map the second CS of the compact flash too. This allow us access to
the alternate status and the control registers. Remove the local
version of ata_reset.

Add support for the ADI Pronghorn Metro boards. They use CS3 and CS4
instead of Avila's CS1 and CS2.


167565 14-Mar-2007 jhay

Map the second CS of the compact flash too. This allow us access to
the alternate status and the control registers. Remove the local
version of ata_reset.

Add support for the ADI Pronghorn Metro boards. They use CS3 and CS4
instead of Avila's CS1 and CS2.

OKed by: sam, cognet


167263 06-Mar-2007 piso

Wrap ixppcib_setup_intr() at 80.


167255 06-Mar-2007 kevlo

Reverse this change. malloc() with M_WAITOK never fails.

Noted by: cognet, brian and thompsa


167219 05-Mar-2007 kevlo

Check for malloc return value


166996 25-Feb-2007 cognet

Update for the new prototype of bus_setup_intr().


166901 23-Feb-2007 piso

o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr()

o add an int return code to all fast handlers

o retire INTR_FAST/IH_FAST

For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current

Reviewed by: many
Approved by: re@


166756 15-Feb-2007 luigi

Cleanup and document the implementation of firmware(9) based on
a version that i posted earlier on the -current mailing list,
and subsequent feedback received.

The core of the change is just in sys/firmware.h and kern/subr_firmware.c,
while other files are just adaptation of the clients to the ABI change
(const-ification of some parameters and hiding of internal info,
so this is fully compatible at the binary level).

In detail:
- reduce the amount of information exported to clients in struct firmware,
and constify the pointer;

- internally, document and simplify the implementation of the various
functions, and make sure error conditions are dealt with properly.

The diffs are large, but the code is really straightforward now (i hope).

Note also that there is a subtle issue with the implementation of
firmware_register(): currently, as in the previous version, we just
store a reference to the 'imagename' argument, but we should rather
copy it because there is no guarantee that this is a static string.
I realised this while testing this code, but i prefer to fix it in
a later commit -- there is no regression with respect to the past.

Note, too, that the version in RELENG_6 has various bugs including
missing locks around the module release calls, mishandling of modules
loaded by /boot/loader, and so on, so an MFC is absolutely necessary
there. I was just postponing it until this cleanup to avoid doing
things twice.

MFC after: 1 week


166625 10-Feb-2007 mlaier

Fix small altq related copy and paste error.


166454 03-Feb-2007 kevlo

ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again.

Approved by: imp, cognet


166414 02-Feb-2007 kevlo

Remove a bogus i = 0

Approved by: cognet


166339 30-Jan-2007 kevlo

Use our own timer that piggybacks on npe_tick() callout instead of
if_watchdog/if_timer interface.

Approved by: sam, cognet


166248 26-Jan-2007 kevlo

Fix comments.

Approved by: cognet


166064 17-Jan-2007 cognet

Create bus dma tags for both the PCI bus and the IXP425 root bus. Set the
PCI bus' one as the default one, and explicitely use the other one for
non-PCI devices.
This is needed because the PCI bus can only address 64MB of RAM, while some
IXP425 boards have 128MB or more, and most of the PCI drivers do not bother
providing the parent dma tag.


165260 15-Dec-2006 n_hibma

Align the interfaces for the various watchdogs and make the interface
behave as expected.

Also:
- Return an error if WD_PASSIVE is passed in to the ioctl as only
WD_ACTIVE is implemented at the moment. See sys/watchdog.h for an
explanation of the difference between WD_ACTIVE and WD_PASSIVE.
- Remove the I_HAVE_TOTALLY_LOST_MY_SENSE_OF_HUMOR define. If you've
lost your sense of humor, than don't add a define.

Specific changes:

i80321_wdog.c
Don't roll your own passive watchdog tickle as this would defeat the
purpose of an active (userland) watchdog tickle.

ichwd.c / ipmi.c:
WD_ACTIVE means active patting of the watchdog by a userland process,
not whether the watchdog is active. See sys/watchdog.h.

kern_clock.c:
(software watchdog) Remove a check for WD_ACTIVE as this does not make
sense here. This reverts r1.181.


164970 07-Dec-2006 sam

Handle a missing NPE firmware file better; if it's missing print a
(somewhat) meaningful message and terminate the build. It'd be
nice to print a proper URL from which to fetch the file but that
seems problematic. Leave a suggested starting point in this file
(TBD: add it to the man page).

Submitted by: ru


164936 06-Dec-2006 julian

Threading cleanup.. part 2 of several.

Make part of John Birrell's KSE patch permanent..
Specifically, remove:
Any reference of the ksegrp structure. This feature was
never fully utilised and made things overly complicated.
All code in the scheduler that tried to make threaded programs
fair to unthreaded programs. Libpthread processes will already
do this to some extent and libthr processes already disable it.

Also:
Since this makes such a big change to the scheduler(s), take the opportunity
to rename some structures and elements that had to be moved anyhow.
This makes the code a lot more readable.

The ULE scheduler compiles again but I have no idea if it works.

The 4bsd scheduler still reqires a little cleaning and some functions that now do
ALMOST nothing will go away, but I thought I'd do that as a separate commit.

Tested by David Xu, and Dan Eischen using libthr and libpthread.


164824 02-Dec-2006 cognet

Provide stream operations.


164763 30-Nov-2006 kevlo

Better i2c bit definitions.

Approved by: cognet


164508 22-Nov-2006 kevlo

Bring in status led support for /dev/led/gpioled on Avila.

Approved by: cognet


164440 20-Nov-2006 kevlo

Match bus space unmap prototype.

Approved by: cognet


164426 19-Nov-2006 sam

Gateworks Avila board support:
o ixp425 support
o NPE network driver (requires Intel microcode)
o h/w qmgr support
o True IDE compact flash over expansion bus
o pci (ath and hifn795x parts tested)
o xscale watchdog timer
o ds1672 RTC on i2c bus
o ad7418 voltage + temp monitoring on i2c bus
o uart

Work done together with cognet, kevlo, and jmg. Parts of
the ixp425 support obtaine/derived from netbsd.

Reviewed by: cognet, imp
MFC after: 1 month


164351 17-Nov-2006 kevlo

Compile -- remove an unused global variable avail_end.

Approved by: cognet


163709 26-Oct-2006 jb

Make KSE a kernel option, turned on by default in all GENERIC
kernel configs except sun4v (which doesn't process signals properly
with KSE).

Reviewed by: davidxu@


161670 27-Aug-2006 cognet

Fill in dump_avail[] before pmap_boostrap() is called so that
ARM_USE_SMALL_ALLOC work.


161592 24-Aug-2006 cognet

Finally bring it support for the i80219 XScale processor.

Submitted by: Max M. Boyarov <m.boyarov bsd by>


161105 08-Aug-2006 cognet

Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps
whole the physical memory, cached, using 1MB section mappings. This reduces
the address space available for user processes a bit, but given the amount of
memory a typical arm machine has, it is not (yet) a big issue.
It then provides a uma_small_alloc() that works as it does for architectures
which have a direct mapping.


161063 08-Aug-2006 kevlo

Remove a bogus i = 0.
Approved by: cognet


160655 25-Jul-2006 kevlo

Cleanup.
Approved by: cognet


160343 14-Jul-2006 cognet

Remove prototype for the undefined function counterhandler().

Submitted by: kevlo


159358 06-Jun-2006 cognet

Remove a bogus, useless, "i++".


158928 26-May-2006 cognet

Remove any reference to enable_mmu(), it's been gone for a long time.

Submitted by: kevlo


158746 19-May-2006 cognet

We have an implementation of generic_bs_rr_1, so use it, as some drivers use
it.

Submitted by: kevlo


158319 05-May-2006 cognet

Setting the rid of the resource is a good idea, but we still need to return
the resource after.


157891 20-Apr-2006 imp

When returning a resource that we've allocated with rman_reserve_resource,
go ahead and set the rid for that resource.


157726 13-Apr-2006 cognet

We need to adjust the bus handle if the resource is SYS_RES_MEMORY, NOT
SYS_RES_IOPORT.


157567 06-Apr-2006 cognet

Add a new option, XSCALE_DISABLE_CCNT, to not use the xscale ccnt as a
timecounter (because gxemul doesn't emule it yet).


156212 02-Mar-2006 cognet

Use BUS_DMA_COHERENT.


155308 04-Feb-2006 cognet

Don't forget to set the address of the next descriptor to 0 when we're
zeroing a physical page, or we could end up re-zeroing portions of
memory we have zeroed before, which is clearly not wanted.


154712 23-Jan-2006 cognet

Donc recompute the io port address if it's already the good one.


153666 22-Dec-2005 jhb

Tweak how the MD code calls the fooclock() methods some. Instead of
passing a pointer to an opaque clockframe structure and requiring the
MD code to supply CLKF_FOO() macros to extract needed values out of the
opaque structure, just pass the needed values directly. In practice this
means passing the pair (usermode, pc) to hardclock() and profclock() and
passing the boolean (usermode) to hardclock_cpu() and hardclock_process().
Other details:
- Axe clockframe and CLKF_FOO() macros on all architectures. Basically,
all the archs were taking a trapframe and converting it into a clockframe
one way or another. Now they can just extract the PC and usermode values
directly out of the trapframe and pass it to fooclock().
- Renamed hardclock_process() to hardclock_cpu() as the latter is more
accurate.
- On Alpha, we now run profclock() at hz (profhz == hz) rather than at
the slower stathz.
- On Alpha, for the TurboLaser machines that don't have an 8254
timecounter, call hardclock() directly. This removes an extra
conditional check from every clock interrupt on Alpha on the BSP.
There is probably room for even further pruning here by changing Alpha
to use the simplified timecounter we use on x86 with the lapic timer
since we don't get interrupts from the 8254 on Alpha anyway.
- On x86, clkintr() shouldn't ever be called now unless using_lapic_timer
is false, so add a KASSERT() to that affect and remove a condition
to slightly optimize the non-lapic case.
- Change prototypeof arm_handler_execute() so that it's first arg is a
trapframe pointer rather than a void pointer for clarity.
- Use KCOUNT macro in profclock() to lookup the kernel profiling bucket.

Tested on: alpha, amd64, arm, i386, ia64, sparc64
Reviewed by: bde (mostly)


153615 21-Dec-2005 cognet

Remove #undef DDB I shouldn't have committed.


153279 09-Dec-2005 cognet

- Better use of the busdma API.
- Use spin locks instead of sleep locks.


153278 09-Dec-2005 cognet

Fix a harmless bug in the way we allocate the early PTEs.


153277 09-Dec-2005 cognet

The IQ80321 clock is 200MHz, but the IQ80321 is 198MHz, so add a kernel option
to override the frequency


152743 24-Nov-2005 cognet

Use a magic number to know we were started from the elf wrapper.
Add a dummy _start function to make the non-elf version of the wrapper work.


151524 20-Oct-2005 cognet

Cleanup.


151415 17-Oct-2005 cognet

Use the clock count register as a timecounter, as it's more accurate.


150916 04-Oct-2005 cognet

Fix build when DDB isn't defined.


150872 03-Oct-2005 cognet

Import dummy drivers for the i80321 DMA controller and AAU.
The DMA controller driver only knows how to do memory to memory copies, and
the AAU driver how to zero a chunk of memory.
Use them to process big (>=1KB) copying/zeroing.


150867 03-Oct-2005 cognet

Provide a dump_avail[] variable, which contains the page ranges to be
dumped.

For iq31244_machdep.c, attempt to recognize hints provided by the elf
trampoline.


150552 25-Sep-2005 cognet

Fix multiple abuses of __RMAN_RESOURCE_VISIBLE in the arm code.

Spotted out by: phk


147545 23-Jun-2005 cognet

Remove the va == pa mapping.

Approved by: re (blanket)


147166 09-Jun-2005 cognet

- MFp4: modify slightly the arm intr API, there's arm CPUs with more than 32
interrupts.
- Implement teardown methods where appropriate.


147114 07-Jun-2005 cognet

Add a new arm-specific option, ARM_USE_SMALL_ALLOC. If defined, it provides
an implementation of uma_small_alloc() which tries to preallocate memory
1MB per 1MB, and maps it into a section mapping.


146932 03-Jun-2005 cognet

Remove a useless printf.


146618 25-May-2005 cognet

Increase the refresh rate.


145594 27-Apr-2005 cognet

Allocating the memory for the kernel stack one time is enough.


144763 07-Apr-2005 cognet

Don't announce the range SDRAM_START-freemempos until I figure out what's
going on, it produces random memory corruption.


144762 07-Apr-2005 cognet

pmap_update() is gone.


143773 17-Mar-2005 cognet

Bring back some of the cleanups and fixes jmg did in the TS7200 port.


143728 17-Mar-2005 cognet

Use PCIR_BARS instead of PCIR_MAPS.


142570 26-Feb-2005 cognet

Instead of using sysarch() to store-retrieve the tp, add a magic address,
ARM_TP_ADDRESS, where the tp will be stored. On CPUs that support it, a cache
line will be allocated and locked for this address, so that it will never go
to RAM. On CPUs that does not, a page is allocated for it (it will be a bit
slower, and is wrong for SMP, but should be fine for UP).
The tp is still stored in the mdthread struct, and at each context switch,
ARM_TP_ADDRESS gets updated.

Suggested by: davidxu


142145 20-Feb-2005 cognet

MFp4: get the code that set the pc correctly to work, remove a few IQ31244
specific mappings from locore.S, re-organize iq31244_machdep.c to work with
the new locore.S

Spotted out by: jmg


141819 13-Feb-2005 cognet

Remove unused prototype.


141817 13-Feb-2005 cognet

Remove redondant includes.


141813 13-Feb-2005 cognet

Don't prototype pmap_kenter().


140533 20-Jan-2005 cognet

Remove references to non-existing symbols DO_corb and got_mmu.
While I'm there, remove dead code.


140350 16-Jan-2005 cognet

Add a new sysctl, hw.sevenseg.freq, to control the update frequency.


140308 15-Jan-2005 cognet

Add support for the IQ31244 7 seg display.

Obtained from: NetBSD


140307 15-Jan-2005 cognet

Start the license statement with /*-


140305 15-Jan-2005 cognet

Use device_set_desc().


140304 15-Jan-2005 cognet

Add the i80321 watchdog.


140303 15-Jan-2005 cognet

Add a driver for the i80321 watchdog.

Obtained from: NetBSD


139735 05-Jan-2005 imp

Start all license statements with /*-


139117 21-Dec-2004 cognet

- The IQ80321 has a jumper which changes the PCI device id from 4 to 8 for the
GigE controller, so handle this.
- Use the outbound window 0 if the PCI mem requested is in its range, instead
of inconditionally use the outbound window 1.
This should be enough to get FreeBSD/arm to work on the IQ80321 board as well.

Reported and tested by: Jia-Shiun Li <jiashiun at gmail dot com>


138417 05-Dec-2004 cognet

Make sure to map the whole kernel into 1MB pages. Try to use the remaining
memory for things such as the kernel stack.


138021 23-Nov-2004 cognet

Use ns8250.


137939 20-Nov-2004 cognet

Get the kernel stack right now that the u-area is gone.


137912 20-Nov-2004 das

U areas are going away, so don't allocate one for process 0.

Reviewed by: arch@


137838 18-Nov-2004 cognet

Move KERNPHYSADDR and KERNVIRTADDR from std.i80321 to std.iq31244.
Use the correct KERNPHYSADDR.


137665 13-Nov-2004 cognet

Remove debugging printf.


137551 10-Nov-2004 cognet

Convert the IQ31244 code to use ARM32_NEW_VM_LAYOUT.


137273 05-Nov-2004 cognet

If we're still running at the physical address, jump to the virtual address
instead before calling initarm().
This removes the need to map virtual == physical in initarm().


135669 23-Sep-2004 cognet

Import partial support for the IQ31244 eval board (i80321 CPU). IQ80321 might
work out of the box too, but I have no hardware to test.
It works well enough to go multiuser. Network works, SATA does not, as I have
no drive to test.
Thanks to Intel for sending such a board.

Obtained from: NetBSD


135668 23-Sep-2004 cognet

Add Xscale common headers.